Message ID | 20200421155954.137391-3-alainm@chromium.org |
---|---|
State | New |
Headers | show |
Series | bluetooth:Adding driver and quirk defs for multi-role LE | expand |
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index 0a591be8b0ae..34cd98a1d370 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -5245,7 +5245,9 @@ static struct hci_conn *check_pending_le_conn(struct hci_dev *hdev, /* Most controller will fail if we try to create new connections * while we have an existing one in slave role. */ - if (hdev->conn_hash.le_num_slave > 0) + if (hdev->conn_hash.le_num_slave > 0 && + (hdev->quirks & HCI_QUIRK_VALID_LE_STATES) == 0 || + !(hdev->le_states[3] & 0x10)) return NULL; /* If we're not connectable only connect devices that we have in
This change allows scatternet connections to be created if the controller reports support and the HCI_QUIRK_VALID_LE_STATES indicates that the reported LE states can be trusted. Signed-off-by: Alain Michaud <alainm@chromium.org> --- net/bluetooth/hci_event.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)