diff options
Diffstat (limited to 'net/bluetooth/hci_core.c')
-rw-r--r-- | net/bluetooth/hci_core.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index 7140f83328a2..596660d37c5e 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c | |||
@@ -861,6 +861,9 @@ static int hci_dev_do_close(struct hci_dev *hdev) | |||
861 | /* Clear flags */ | 861 | /* Clear flags */ |
862 | hdev->flags = 0; | 862 | hdev->flags = 0; |
863 | 863 | ||
864 | /* Controller radio is available but is currently powered down */ | ||
865 | hdev->amp_status = 0; | ||
866 | |||
864 | memset(hdev->eir, 0, sizeof(hdev->eir)); | 867 | memset(hdev->eir, 0, sizeof(hdev->eir)); |
865 | memset(hdev->dev_class, 0, sizeof(hdev->dev_class)); | 868 | memset(hdev->dev_class, 0, sizeof(hdev->dev_class)); |
866 | 869 | ||
@@ -1854,6 +1857,8 @@ void hci_unregister_dev(struct hci_dev *hdev) | |||
1854 | for (i = 0; i < NUM_REASSEMBLY; i++) | 1857 | for (i = 0; i < NUM_REASSEMBLY; i++) |
1855 | kfree_skb(hdev->reassembly[i]); | 1858 | kfree_skb(hdev->reassembly[i]); |
1856 | 1859 | ||
1860 | cancel_work_sync(&hdev->power_on); | ||
1861 | |||
1857 | if (!test_bit(HCI_INIT, &hdev->flags) && | 1862 | if (!test_bit(HCI_INIT, &hdev->flags) && |
1858 | !test_bit(HCI_SETUP, &hdev->dev_flags)) { | 1863 | !test_bit(HCI_SETUP, &hdev->dev_flags)) { |
1859 | hci_dev_lock(hdev); | 1864 | hci_dev_lock(hdev); |