diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2024-08-12 10:43:48 -0400 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2024-08-15 13:07:55 -0400 |
commit | aae6b81260fd9a7224f7eb4fc440d625852245bb (patch) | |
tree | 4feb48e450af3fe57b48453d586ba2a230488df1 /net/bluetooth | |
parent | 9c5af2d7dfe18e3a36f85fad8204cd2442ecd82b (diff) | |
download | linux-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.c | 2 |
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; |