summaryrefslogtreecommitdiffstats
path: root/net/bluetooth
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2024-08-12 10:43:48 -0400
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2024-08-15 13:07:55 -0400
commitaae6b81260fd9a7224f7eb4fc440d625852245bb (patch)
tree4feb48e450af3fe57b48453d586ba2a230488df1 /net/bluetooth
parent9c5af2d7dfe18e3a36f85fad8204cd2442ecd82b (diff)
downloadlinux-stable-aae6b81260fd9a7224f7eb4fc440d625852245bb.tar.gz
linux-stable-aae6b81260fd9a7224f7eb4fc440d625852245bb.tar.bz2
linux-stable-aae6b81260fd9a7224f7eb4fc440d625852245bb.zip
Bluetooth: HCI: Invert LE State quirk to be opt-out rather then opt-in
This inverts the LE State quirk so by default we assume the controllers would report valid states rather than invalid which is how quirks normally behave, also this would result in HCI command failing it the LE States are really broken thus exposing the controllers that are really broken in this respect. Link: https://github.com/bluez/bluez/issues/584 Fixes: 220915857e29 ("Bluetooth: Adding driver and quirk defs for multi-role LE") Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Diffstat (limited to 'net/bluetooth')
-rw-r--r--net/bluetooth/hci_event.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index d0c118c47f6c..1c82dcdf6e8f 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -5920,7 +5920,7 @@ static struct hci_conn *check_pending_le_conn(struct hci_dev *hdev,
* while we have an existing one in peripheral role.
*/
if (hdev->conn_hash.le_num_peripheral > 0 &&
- (!test_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks) ||
+ (test_bit(HCI_QUIRK_BROKEN_LE_STATES, &hdev->quirks) ||
!(hdev->le_states[3] & 0x10)))
return NULL;