Loading drivers/bluetooth/btmrvl_debugfs.c +12 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,8 @@ static ssize_t btmrvl_hscfgcmd_write(struct file *file, return -EFAULT; ret = strict_strtol(buf, 10, &result); if (ret) return ret; priv->btmrvl_dev.hscfgcmd = result; Loading Loading @@ -108,6 +110,8 @@ static ssize_t btmrvl_psmode_write(struct file *file, const char __user *ubuf, return -EFAULT; ret = strict_strtol(buf, 10, &result); if (ret) return ret; priv->btmrvl_dev.psmode = result; Loading Loading @@ -147,6 +151,8 @@ static ssize_t btmrvl_pscmd_write(struct file *file, const char __user *ubuf, return -EFAULT; ret = strict_strtol(buf, 10, &result); if (ret) return ret; priv->btmrvl_dev.pscmd = result; Loading Loading @@ -191,6 +197,8 @@ static ssize_t btmrvl_gpiogap_write(struct file *file, const char __user *ubuf, return -EFAULT; ret = strict_strtol(buf, 16, &result); if (ret) return ret; priv->btmrvl_dev.gpio_gap = result; Loading Loading @@ -230,6 +238,8 @@ static ssize_t btmrvl_hscmd_write(struct file *file, const char __user *ubuf, return -EFAULT; ret = strict_strtol(buf, 10, &result); if (ret) return ret; priv->btmrvl_dev.hscmd = result; if (priv->btmrvl_dev.hscmd) { Loading Loading @@ -272,6 +282,8 @@ static ssize_t btmrvl_hsmode_write(struct file *file, const char __user *ubuf, return -EFAULT; ret = strict_strtol(buf, 10, &result); if (ret) return ret; priv->btmrvl_dev.hsmode = result; Loading net/bluetooth/hci_event.c +10 −8 Original line number Diff line number Diff line Loading @@ -477,14 +477,16 @@ static void hci_setup_event_mask(struct hci_dev *hdev) * command otherwise */ u8 events[8] = { 0xff, 0xff, 0xfb, 0xff, 0x00, 0x00, 0x00, 0x00 }; /* Events for 1.2 and newer controllers */ if (hdev->lmp_ver > 1) { /* CSR 1.1 dongles does not accept any bitfield so don't try to set * any event mask for pre 1.2 devices */ if (hdev->lmp_ver <= 1) return; events[4] |= 0x01; /* Flow Specification Complete */ events[4] |= 0x02; /* Inquiry Result with RSSI */ events[4] |= 0x04; /* Read Remote Extended Features Complete */ events[5] |= 0x08; /* Synchronous Connection Complete */ events[5] |= 0x10; /* Synchronous Connection Changed */ } if (hdev->features[3] & LMP_RSSI_INQ) events[4] |= 0x04; /* Inquiry Result with RSSI */ Loading net/bluetooth/l2cap_sock.c +1 −0 Original line number Diff line number Diff line Loading @@ -367,6 +367,7 @@ static int l2cap_sock_getsockopt_old(struct socket *sock, int optname, char __us break; } memset(&cinfo, 0, sizeof(cinfo)); cinfo.hci_handle = chan->conn->hcon->handle; memcpy(cinfo.dev_class, chan->conn->hcon->dev_class, 3); Loading net/bluetooth/rfcomm/sock.c +3 −1 Original line number Diff line number Diff line Loading @@ -679,7 +679,8 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c { struct sock *sk = sock->sk; struct bt_security sec; int len, err = 0; int err = 0; size_t len; u32 opt; BT_DBG("sk %p", sk); Loading Loading @@ -785,6 +786,7 @@ static int rfcomm_sock_getsockopt_old(struct socket *sock, int optname, char __u break; } memset(&cinfo, 0, sizeof(cinfo)); cinfo.hci_handle = conn->hcon->handle; memcpy(cinfo.dev_class, conn->hcon->dev_class, 3); Loading net/bluetooth/sco.c +12 −1 Original line number Diff line number Diff line Loading @@ -369,6 +369,15 @@ static void __sco_sock_close(struct sock *sk) case BT_CONNECTED: case BT_CONFIG: if (sco_pi(sk)->conn) { sk->sk_state = BT_DISCONN; sco_sock_set_timer(sk, SCO_DISCONN_TIMEOUT); hci_conn_put(sco_pi(sk)->conn->hcon); sco_pi(sk)->conn->hcon = NULL; } else sco_chan_del(sk, ECONNRESET); break; case BT_CONNECT: case BT_DISCONN: sco_chan_del(sk, ECONNRESET); Loading Loading @@ -819,6 +828,8 @@ static void sco_chan_del(struct sock *sk, int err) conn->sk = NULL; sco_pi(sk)->conn = NULL; sco_conn_unlock(conn); if (conn->hcon) hci_conn_put(conn->hcon); } Loading Loading
drivers/bluetooth/btmrvl_debugfs.c +12 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,8 @@ static ssize_t btmrvl_hscfgcmd_write(struct file *file, return -EFAULT; ret = strict_strtol(buf, 10, &result); if (ret) return ret; priv->btmrvl_dev.hscfgcmd = result; Loading Loading @@ -108,6 +110,8 @@ static ssize_t btmrvl_psmode_write(struct file *file, const char __user *ubuf, return -EFAULT; ret = strict_strtol(buf, 10, &result); if (ret) return ret; priv->btmrvl_dev.psmode = result; Loading Loading @@ -147,6 +151,8 @@ static ssize_t btmrvl_pscmd_write(struct file *file, const char __user *ubuf, return -EFAULT; ret = strict_strtol(buf, 10, &result); if (ret) return ret; priv->btmrvl_dev.pscmd = result; Loading Loading @@ -191,6 +197,8 @@ static ssize_t btmrvl_gpiogap_write(struct file *file, const char __user *ubuf, return -EFAULT; ret = strict_strtol(buf, 16, &result); if (ret) return ret; priv->btmrvl_dev.gpio_gap = result; Loading Loading @@ -230,6 +238,8 @@ static ssize_t btmrvl_hscmd_write(struct file *file, const char __user *ubuf, return -EFAULT; ret = strict_strtol(buf, 10, &result); if (ret) return ret; priv->btmrvl_dev.hscmd = result; if (priv->btmrvl_dev.hscmd) { Loading Loading @@ -272,6 +282,8 @@ static ssize_t btmrvl_hsmode_write(struct file *file, const char __user *ubuf, return -EFAULT; ret = strict_strtol(buf, 10, &result); if (ret) return ret; priv->btmrvl_dev.hsmode = result; Loading
net/bluetooth/hci_event.c +10 −8 Original line number Diff line number Diff line Loading @@ -477,14 +477,16 @@ static void hci_setup_event_mask(struct hci_dev *hdev) * command otherwise */ u8 events[8] = { 0xff, 0xff, 0xfb, 0xff, 0x00, 0x00, 0x00, 0x00 }; /* Events for 1.2 and newer controllers */ if (hdev->lmp_ver > 1) { /* CSR 1.1 dongles does not accept any bitfield so don't try to set * any event mask for pre 1.2 devices */ if (hdev->lmp_ver <= 1) return; events[4] |= 0x01; /* Flow Specification Complete */ events[4] |= 0x02; /* Inquiry Result with RSSI */ events[4] |= 0x04; /* Read Remote Extended Features Complete */ events[5] |= 0x08; /* Synchronous Connection Complete */ events[5] |= 0x10; /* Synchronous Connection Changed */ } if (hdev->features[3] & LMP_RSSI_INQ) events[4] |= 0x04; /* Inquiry Result with RSSI */ Loading
net/bluetooth/l2cap_sock.c +1 −0 Original line number Diff line number Diff line Loading @@ -367,6 +367,7 @@ static int l2cap_sock_getsockopt_old(struct socket *sock, int optname, char __us break; } memset(&cinfo, 0, sizeof(cinfo)); cinfo.hci_handle = chan->conn->hcon->handle; memcpy(cinfo.dev_class, chan->conn->hcon->dev_class, 3); Loading
net/bluetooth/rfcomm/sock.c +3 −1 Original line number Diff line number Diff line Loading @@ -679,7 +679,8 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c { struct sock *sk = sock->sk; struct bt_security sec; int len, err = 0; int err = 0; size_t len; u32 opt; BT_DBG("sk %p", sk); Loading Loading @@ -785,6 +786,7 @@ static int rfcomm_sock_getsockopt_old(struct socket *sock, int optname, char __u break; } memset(&cinfo, 0, sizeof(cinfo)); cinfo.hci_handle = conn->hcon->handle; memcpy(cinfo.dev_class, conn->hcon->dev_class, 3); Loading
net/bluetooth/sco.c +12 −1 Original line number Diff line number Diff line Loading @@ -369,6 +369,15 @@ static void __sco_sock_close(struct sock *sk) case BT_CONNECTED: case BT_CONFIG: if (sco_pi(sk)->conn) { sk->sk_state = BT_DISCONN; sco_sock_set_timer(sk, SCO_DISCONN_TIMEOUT); hci_conn_put(sco_pi(sk)->conn->hcon); sco_pi(sk)->conn->hcon = NULL; } else sco_chan_del(sk, ECONNRESET); break; case BT_CONNECT: case BT_DISCONN: sco_chan_del(sk, ECONNRESET); Loading Loading @@ -819,6 +828,8 @@ static void sco_chan_del(struct sock *sk, int err) conn->sk = NULL; sco_pi(sk)->conn = NULL; sco_conn_unlock(conn); if (conn->hcon) hci_conn_put(conn->hcon); } Loading