]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Aug 2021 04:34:07 +0000 (06:34 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Aug 2021 04:34:07 +0000 (06:34 +0200)
added patches:
revert-bluetooth-shutdown-controller-after-workqueues-are-flushed-or-cancelled.patch

queue-4.4/revert-bluetooth-shutdown-controller-after-workqueues-are-flushed-or-cancelled.patch [new file with mode: 0644]
queue-4.4/series

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 (file)
index 0000000..a9cca7a
--- /dev/null
@@ -0,0 +1,55 @@
+From 78eb5695f0139bf453dd43885238994aeb9c09b1 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Thu, 5 Aug 2021 20:58:57 +0200
+Subject: Revert "Bluetooth: Shutdown controller after workqueues are flushed or cancelled"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+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 <linux@roeck-us.net>
+Cc: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Cc: Marcel Holtmann <marcel@holtmann.org>
+Cc: Sasha Levin <sashal@kernel.org>
+Link: https://lore.kernel.org/r/efee3a58-a4d2-af22-0931-e81b877ab539@roeck-us.net
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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);
index 1240d07b65b2da1dc67a15b0fd93794e28b7d8b7..df247973e99e0837206a17f028eeb3ca1234bbaa 100644 (file)
@@ -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