Skip to content

Commit

Permalink
Revert "Bluetooth: Shutdown controller after workqueues are flushed o…
Browse files Browse the repository at this point in the history
…r cancelled"

This reverts commit c19a282 which is
commit 0ea9fd0 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>
  • Loading branch information
gregkh committed Aug 8, 2021
1 parent 989b271 commit c268b30
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions net/bluetooth/hci_core.c
Expand Up @@ -1721,6 +1721,14 @@ int hci_dev_do_close(struct hci_dev *hdev)

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_request_cancel_all(hdev);
Expand Down Expand Up @@ -1797,14 +1805,6 @@ int hci_dev_do_close(struct hci_dev *hdev)
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);

Expand Down

0 comments on commit c268b30

Please sign in to comment.