|
@@ -587,10 +587,8 @@ 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)) {
|
|
|
+ del_timer_sync(&hdev->cmd_timer);
|
|
|
hci_req_unlock(hdev);
|
|
|
return 0;
|
|
|
}
|
|
@@ -629,6 +627,7 @@ 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;
|
|
|
}
|