diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index b2a0bc381..aea283e5c 100755 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -3836,7 +3836,11 @@ void hci_unregister_dev(struct hci_dev *hdev) list_del(&hdev->list); write_unlock(&hci_dev_list_lock); + cancel_work_sync(&hdev->rx_work); + cancel_work_sync(&hdev->cmd_work); + cancel_work_sync(&hdev->tx_work); cancel_work_sync(&hdev->power_on); + cancel_work_sync(&hdev->error_reset); if (!test_bit(HCI_QUIRK_NO_SUSPEND_NOTIFIER, &hdev->quirks)) { hci_suspend_clear_tasks(hdev);