From af04cba226d444d5a9ddb75fe2ee724ddcfb44f6 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 6 Aug 2021 06:34:07 +0200 Subject: [PATCH] 4.4-stable patches added patches: revert-bluetooth-shutdown-controller-after-workqueues-are-flushed-or-cancelled.patch --- ...-workqueues-are-flushed-or-cancelled.patch | 55 +++++++++++++++++++ queue-4.4/series | 1 + 2 files changed, 56 insertions(+) create mode 100644 queue-4.4/revert-bluetooth-shutdown-controller-after-workqueues-are-flushed-or-cancelled.patch diff --git a/queue-4.4/revert-bluetooth-shutdown-controller-after-workqueues-are-flushed-or-cancelled.patch b/queue-4.4/revert-bluetooth-shutdown-controller-after-workqueues-are-flushed-or-cancelled.patch new file mode 100644 index 00000000000..a9cca7af874 --- /dev/null +++ b/queue-4.4/revert-bluetooth-shutdown-controller-after-workqueues-are-flushed-or-cancelled.patch @@ -0,0 +1,55 @@ +From 78eb5695f0139bf453dd43885238994aeb9c09b1 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Thu, 5 Aug 2021 20:58:57 +0200 +Subject: Revert "Bluetooth: Shutdown controller after workqueues are flushed or cancelled" + +From: Greg Kroah-Hartman + +This reverts commit 5d16a8280078701fc03d6a0367c3251809743274 which is +commit 0ea9fd001a14ebc294f112b0361a4e601551d508 upstream. + +It has been reported to have problems: + https://lore.kernel.org/linux-bluetooth/8735ryk0o7.fsf@baylibre.com/ + +Reported-by: Guenter Roeck +Cc: Kai-Heng Feng +Cc: Marcel Holtmann +Cc: Sasha Levin +Link: https://lore.kernel.org/r/efee3a58-a4d2-af22-0931-e81b877ab539@roeck-us.net +Signed-off-by: Greg Kroah-Hartman +--- + net/bluetooth/hci_core.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +--- a/net/bluetooth/hci_core.c ++++ b/net/bluetooth/hci_core.c +@@ -1666,6 +1666,14 @@ int hci_dev_do_close(struct hci_dev *hde + + BT_DBG("%s %p", hdev->name, hdev); + ++ if (!hci_dev_test_flag(hdev, HCI_UNREGISTER) && ++ !hci_dev_test_flag(hdev, HCI_USER_CHANNEL) && ++ test_bit(HCI_UP, &hdev->flags)) { ++ /* Execute vendor specific shutdown routine */ ++ if (hdev->shutdown) ++ hdev->shutdown(hdev); ++ } ++ + cancel_delayed_work(&hdev->power_off); + + hci_req_cancel(hdev, ENODEV); +@@ -1738,14 +1746,6 @@ int hci_dev_do_close(struct hci_dev *hde + clear_bit(HCI_INIT, &hdev->flags); + } + +- if (!hci_dev_test_flag(hdev, HCI_UNREGISTER) && +- !hci_dev_test_flag(hdev, HCI_USER_CHANNEL) && +- test_bit(HCI_UP, &hdev->flags)) { +- /* Execute vendor specific shutdown routine */ +- if (hdev->shutdown) +- hdev->shutdown(hdev); +- } +- + /* flush cmd work */ + flush_work(&hdev->cmd_work); + diff --git a/queue-4.4/series b/queue-4.4/series index 1240d07b65b..df247973e99 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -2,3 +2,4 @@ btrfs-mark-compressed-range-uptodate-only-if-all-bio.patch regulator-rt5033-fix-n_voltages-settings-for-buck-an.patch r8152-fix-potential-pm-refcount-imbalance.patch net-fix-zero-copy-head-len-calculation.patch +revert-bluetooth-shutdown-controller-after-workqueues-are-flushed-or-cancelled.patch -- 2.47.3