Message ID | 20240102185933.64179-2-verdre@v0yd.nl (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Bluetooth: Improve retrying of connection attempts | expand |
On Tue, Jan 02, 2024 at 07:59:28PM +0100, Jonas Dreßler wrote: > The "pending connections" feature was originally introduced with commit > 4c67bc74f016b0d360b8573e18969c0ff7926974 and > 6bd57416127e92d35e6798925502c84e14a3a966 to handle controllers supporting > only a single connection request at a time. Later things were extended to > also cancel ongoing inquiries on connect() with commit > 89e65975fea5c25706e8cc3a89f9f97b20fc45ad. > > With commit a9de9248064bfc8eb0a183a6a951a4e7b5ca10a4, > hci_conn_check_pending() was introduced as a helper to consolidate a few > places where we check for pending connections (indicated by the > BT_CONNECT2 flag) and then try to connect. > > This refactoring commit also snuck in two more calls to > hci_conn_check_pending(): > > - One is in the failure callback of hci_cs_inquiry(), this one probably > makes sense: If we send an "HCI Inquiry" command and then immediately > after a "Create Connection" command, the "Create Connection" command might > fail before the "HCI Inquiry" command, and then we want to retry the > "Create Connection" on failure of the "HCI Inquiry". > > - The other added call to hci_conn_check_pending() is in the event handler > for the "Remote Name" event, this seems unrelated and is possibly a > copy-paste error, so remove that one. > > Fixes: a9de9248064bfc8eb0a183a6a951a4e7b5ca10a4 > Signed-off-by: Jonas Dreßler <verdre@v0yd.nl> Nit: a correct format for the fixes tag is Fixes: a9de9248064b ("[Bluetooth] Switch from OGF+OCF to using only opcodes") Likewise, in the patch description, it is usual to cite patches using a similar format. e.g. introduced in commit 4c67bc74f016 ("[Bluetooth] Support concurrent connect requests") Note it is usual to use a hash of at least 12 characters (and not much more than that). ...
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index 31ca320ce..13396329f 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -3538,8 +3538,6 @@ static void hci_remote_name_evt(struct hci_dev *hdev, void *data, bt_dev_dbg(hdev, "status 0x%2.2x", ev->status); - hci_conn_check_pending(hdev); - hci_dev_lock(hdev); conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
The "pending connections" feature was originally introduced with commit 4c67bc74f016b0d360b8573e18969c0ff7926974 and 6bd57416127e92d35e6798925502c84e14a3a966 to handle controllers supporting only a single connection request at a time. Later things were extended to also cancel ongoing inquiries on connect() with commit 89e65975fea5c25706e8cc3a89f9f97b20fc45ad. With commit a9de9248064bfc8eb0a183a6a951a4e7b5ca10a4, hci_conn_check_pending() was introduced as a helper to consolidate a few places where we check for pending connections (indicated by the BT_CONNECT2 flag) and then try to connect. This refactoring commit also snuck in two more calls to hci_conn_check_pending(): - One is in the failure callback of hci_cs_inquiry(), this one probably makes sense: If we send an "HCI Inquiry" command and then immediately after a "Create Connection" command, the "Create Connection" command might fail before the "HCI Inquiry" command, and then we want to retry the "Create Connection" on failure of the "HCI Inquiry". - The other added call to hci_conn_check_pending() is in the event handler for the "Remote Name" event, this seems unrelated and is possibly a copy-paste error, so remove that one. Fixes: a9de9248064bfc8eb0a183a6a951a4e7b5ca10a4 Signed-off-by: Jonas Dreßler <verdre@v0yd.nl> --- net/bluetooth/hci_event.c | 2 -- 1 file changed, 2 deletions(-)