Bluetooth: Better locking when tearing down an HCI connection.

Restarting Riva will abruptly disconnect the hci device, which can
tear down the hci_conn struct on one processor while RFCOMM code
is running on another. This would keep l2cap_chan_del from being
executed while RFCOMM is in the middle of using a socket.

CRs-fixed: 351273
Change-Id: I37c82cac022a1d1c0fd60791f7c15b56e2415850
Signed-off-by: Ankit Verma <ankitv@codeaurora.org>
This commit is contained in:
Ankit Verma
2012-04-25 15:42:04 -07:00
committed by Stephen Boyd
parent 3cce2ec821
commit f93cc070f2

View File

@@ -1563,7 +1563,7 @@ int hci_unregister_dev(struct hci_dev *hdev)
list_del(&hdev->list);
write_unlock_bh(&hci_dev_list_lock);
hci_dev_do_close(hdev, 0);
hci_dev_do_close(hdev, hdev->bus == HCI_SMD);
for (i = 0; i < NUM_REASSEMBLY; i++)
kfree_skb(hdev->reassembly[i]);