Commit ff7f2926 authored by Vasyl Vavrychuk's avatar Vasyl Vavrychuk Committed by Marcel Holtmann
Browse files

Bluetooth: core: Fix missing power_on work cancel on HCI close



Move power_on work cancel to hci_dev_close_sync to ensure that power_on
work is canceled after HCI interface down, power off, rfkill, etc.

For example, if

    hciconfig hci0 down

is done early enough during boot, it may run before power_on work.
Then, power_on work will actually bring up interface despite above
hciconfig command.

Signed-off-by: default avatarVasyl Vavrychuk <vasyl.vavrychuk@opensynergy.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 46225947
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -2675,8 +2675,6 @@ void hci_unregister_dev(struct hci_dev *hdev)
	list_del(&hdev->list);
	write_unlock(&hci_dev_list_lock);

	cancel_work_sync(&hdev->power_on);

	hci_cmd_sync_clear(hdev);

	if (!test_bit(HCI_QUIRK_NO_SUSPEND_NOTIFIER, &hdev->quirks))
+1 −0
Original line number Diff line number Diff line
@@ -4089,6 +4089,7 @@ int hci_dev_close_sync(struct hci_dev *hdev)

	bt_dev_dbg(hdev, "");

	cancel_work_sync(&hdev->power_on);
	cancel_delayed_work(&hdev->power_off);
	cancel_delayed_work(&hdev->ncmd_timer);