Loading net/bluetooth/hci_conn.c +3 −3 Original line number Diff line number Diff line Loading @@ -249,12 +249,12 @@ static void hci_conn_disconnect(struct hci_conn *conn) __u8 reason = hci_proto_disconn_ind(conn); switch (conn->type) { case ACL_LINK: hci_acl_disconn(conn, reason); break; case AMP_LINK: hci_amp_disconn(conn, reason); break; default: hci_acl_disconn(conn, reason); break; } } Loading net/bluetooth/smp.c +13 −0 Original line number Diff line number Diff line Loading @@ -859,6 +859,19 @@ int smp_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb) skb_pull(skb, sizeof(code)); /* * The SMP context must be initialized for all other PDUs except * pairing and security requests. If we get any other PDU when * not initialized simply disconnect (done if this function * returns an error). */ if (code != SMP_CMD_PAIRING_REQ && code != SMP_CMD_SECURITY_REQ && !conn->smp_chan) { BT_ERR("Unexpected SMP command 0x%02x. Disconnecting.", code); kfree_skb(skb); return -ENOTSUPP; } switch (code) { case SMP_CMD_PAIRING_REQ: reason = smp_cmd_pairing_req(conn, skb); Loading Loading
net/bluetooth/hci_conn.c +3 −3 Original line number Diff line number Diff line Loading @@ -249,12 +249,12 @@ static void hci_conn_disconnect(struct hci_conn *conn) __u8 reason = hci_proto_disconn_ind(conn); switch (conn->type) { case ACL_LINK: hci_acl_disconn(conn, reason); break; case AMP_LINK: hci_amp_disconn(conn, reason); break; default: hci_acl_disconn(conn, reason); break; } } Loading
net/bluetooth/smp.c +13 −0 Original line number Diff line number Diff line Loading @@ -859,6 +859,19 @@ int smp_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb) skb_pull(skb, sizeof(code)); /* * The SMP context must be initialized for all other PDUs except * pairing and security requests. If we get any other PDU when * not initialized simply disconnect (done if this function * returns an error). */ if (code != SMP_CMD_PAIRING_REQ && code != SMP_CMD_SECURITY_REQ && !conn->smp_chan) { BT_ERR("Unexpected SMP command 0x%02x. Disconnecting.", code); kfree_skb(skb); return -ENOTSUPP; } switch (code) { case SMP_CMD_PAIRING_REQ: reason = smp_cmd_pairing_req(conn, skb); Loading