summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorJohan Hedberg2012-02-03 20:29:40 +0100
committerJohan Hedberg2012-02-15 12:09:26 +0100
commitca0d6c7ece0e78268cd7c5c378d6b1b610625085 (patch)
tree23c56a6629b63e20c59ba36971fd181d54c02b6d /net
parentBluetooth: Fix RFCOMM session reference counting issue (diff)
downloadkernel-qcow2-linux-ca0d6c7ece0e78268cd7c5c378d6b1b610625085.tar.gz
kernel-qcow2-linux-ca0d6c7ece0e78268cd7c5c378d6b1b610625085.tar.xz
kernel-qcow2-linux-ca0d6c7ece0e78268cd7c5c378d6b1b610625085.zip
Bluetooth: Add missing QUIRK_NO_RESET test to hci_dev_do_close
We should only perform a reset in hci_dev_do_close if the HCI_QUIRK_NO_RESET flag is set (since in such a case a reset will not be performed when initializing the device). Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Acked-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net')
-rw-r--r--net/bluetooth/hci_core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 9de93714213a..5aeb62491198 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -640,7 +640,8 @@ static int hci_dev_do_close(struct hci_dev *hdev)
/* Reset device */
skb_queue_purge(&hdev->cmd_q);
atomic_set(&hdev->cmd_cnt, 1);
- if (!test_bit(HCI_RAW, &hdev->flags)) {
+ if (!test_bit(HCI_RAW, &hdev->flags) &&
+ test_bit(HCI_QUIRK_NO_RESET, &hdev->quirks)) {
set_bit(HCI_INIT, &hdev->flags);
__hci_request(hdev, hci_reset_req, 0,
msecs_to_jiffies(250));