Bluetooth: hci_core: cancel power off delayed work properly
authorWei-Ning Huang <wnhuang@chromium.org>
Mon, 15 Feb 2016 09:09:51 +0000 (17:09 +0800)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 23 Feb 2016 19:29:38 +0000 (20:29 +0100)
When the HCI_AUTO_OFF flag is cleared, the power_off delayed work need
to be cancel or HCI will be powered off even if it's managed.

Signed-off-by: Wei-Ning Huang <wnhuang@chromium.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/hci_core.c

index 9c0a683..2713fc8 100644 (file)
@@ -2021,6 +2021,7 @@ static void hci_power_on(struct work_struct *work)
        if (test_bit(HCI_UP, &hdev->flags) &&
            hci_dev_test_flag(hdev, HCI_MGMT) &&
            hci_dev_test_and_clear_flag(hdev, HCI_AUTO_OFF)) {
+               cancel_delayed_work(&hdev->power_off);
                hci_req_sync_lock(hdev);
                err = __hci_req_hci_power_on(hdev);
                hci_req_sync_unlock(hdev);