2022-04-26 15:29:00

by Vasyl Vavrychuk

[permalink] [raw]
Subject: [PATCH] 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: Vasyl Vavrychuk <[email protected]>
---
net/bluetooth/hci_core.c | 2 --
net/bluetooth/hci_sync.c | 1 +
2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index b4782a6c1025..ad4f4ab0afca 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -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))
diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
index 8f4c5698913d..c5b0dbfc0379 100644
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -4058,6 +4058,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);

--
2.30.2


2022-04-27 10:08:23

by bluez.test.bot

[permalink] [raw]
Subject: RE: Bluetooth: core: Fix missing power_on work cancel on HCI close

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=635639

---Test result---

Test Summary:
CheckPatch PASS 1.82 seconds
GitLint PASS 0.95 seconds
SubjectPrefix PASS 0.92 seconds
BuildKernel PASS 31.45 seconds
BuildKernel32 PASS 28.44 seconds
Incremental Build with patchesPASS 38.02 seconds
TestRunner: Setup PASS 470.78 seconds
TestRunner: l2cap-tester PASS 17.35 seconds
TestRunner: bnep-tester PASS 6.08 seconds
TestRunner: mgmt-tester PASS 102.04 seconds
TestRunner: rfcomm-tester PASS 9.61 seconds
TestRunner: sco-tester PASS 9.48 seconds
TestRunner: smp-tester PASS 9.50 seconds
TestRunner: userchan-tester PASS 6.38 seconds



---
Regards,
Linux Bluetooth