|
@@ -587,6 +587,9 @@ static int hci_dev_do_close(struct hci_dev *hdev)
|
|
|
hci_req_cancel(hdev, ENODEV);
|
|
|
hci_req_lock(hdev);
|
|
|
|
|
|
+ /* Stop timer, it might be running */
|
|
|
+ del_timer_sync(&hdev->cmd_timer);
|
|
|
+
|
|
|
if (!test_and_clear_bit(HCI_UP, &hdev->flags)) {
|
|
|
hci_req_unlock(hdev);
|
|
|
return 0;
|
|
@@ -626,7 +629,6 @@ static int hci_dev_do_close(struct hci_dev *hdev)
|
|
|
|
|
|
/* Drop last sent command */
|
|
|
if (hdev->sent_cmd) {
|
|
|
- del_timer_sync(&hdev->cmd_timer);
|
|
|
kfree_skb(hdev->sent_cmd);
|
|
|
hdev->sent_cmd = NULL;
|
|
|
}
|