|
@@ -732,8 +732,9 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
|
|
static int rfcomm_sock_getsockopt_old(struct socket *sock, int optname, char __user *optval, int __user *optlen)
|
|
static int rfcomm_sock_getsockopt_old(struct socket *sock, int optname, char __user *optval, int __user *optlen)
|
|
{
|
|
{
|
|
struct sock *sk = sock->sk;
|
|
struct sock *sk = sock->sk;
|
|
|
|
+ struct sock *l2cap_sk;
|
|
|
|
+ struct l2cap_conn *conn;
|
|
struct rfcomm_conninfo cinfo;
|
|
struct rfcomm_conninfo cinfo;
|
|
- struct l2cap_conn *conn = l2cap_pi(sk)->chan->conn;
|
|
|
|
int len, err = 0;
|
|
int len, err = 0;
|
|
u32 opt;
|
|
u32 opt;
|
|
|
|
|
|
@@ -776,6 +777,9 @@ static int rfcomm_sock_getsockopt_old(struct socket *sock, int optname, char __u
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ l2cap_sk = rfcomm_pi(sk)->dlc->session->sock->sk;
|
|
|
|
+ conn = l2cap_pi(l2cap_sk)->chan->conn;
|
|
|
|
+
|
|
memset(&cinfo, 0, sizeof(cinfo));
|
|
memset(&cinfo, 0, sizeof(cinfo));
|
|
cinfo.hci_handle = conn->hcon->handle;
|
|
cinfo.hci_handle = conn->hcon->handle;
|
|
memcpy(cinfo.dev_class, conn->hcon->dev_class, 3);
|
|
memcpy(cinfo.dev_class, conn->hcon->dev_class, 3);
|