|
@@ -3139,10 +3139,10 @@ void hci_unregister_dev(struct hci_dev *hdev)
|
|
list_del(&hdev->list);
|
|
list_del(&hdev->list);
|
|
write_unlock(&hci_dev_list_lock);
|
|
write_unlock(&hci_dev_list_lock);
|
|
|
|
|
|
- hci_dev_do_close(hdev);
|
|
|
|
-
|
|
|
|
cancel_work_sync(&hdev->power_on);
|
|
cancel_work_sync(&hdev->power_on);
|
|
|
|
|
|
|
|
+ hci_dev_do_close(hdev);
|
|
|
|
+
|
|
if (!test_bit(HCI_INIT, &hdev->flags) &&
|
|
if (!test_bit(HCI_INIT, &hdev->flags) &&
|
|
!hci_dev_test_flag(hdev, HCI_SETUP) &&
|
|
!hci_dev_test_flag(hdev, HCI_SETUP) &&
|
|
!hci_dev_test_flag(hdev, HCI_CONFIG)) {
|
|
!hci_dev_test_flag(hdev, HCI_CONFIG)) {
|