Re: [PATCH] Bluetooth: hci_sync: use HCI_CMD_TIMEOUT for PA sync commands
From: Yang Li
Date: Thu Jan 08 2026 - 22:07:28 EST
Hi Luiz
[ EXTERNAL EMAIL ]
Hi Yang,
On Thu, Jan 8, 2026 at 1:03 AM Yang Li via B4 Relay
<devnull+yang.li.amlogic.com@xxxxxxxxxx> wrote:
From: Yang Li <yang.li@xxxxxxxxxxx>
PA sync HCI commands incorrectly use conn->conn_timeout, which defaults
to 20s and is too long. If the PA Sync Established event is not
received, the command remains pending and causes userspace timeouts.
Im pretty sure this is impossible scenario with bluetooth-next, since
1. only one work can be running hci_le_pa_create_sync at time so
HCI_EV_LE_PA_SYNC_ESTABLISHED cannot be outstanding 2. The
conn->timeout shall be aligned with socket timeout so perhaps the
problem is userspace is not setting the socket timeout correctly or
something.
Well, I got it.
I noticed that BlueZ has a default setting for sync_time with the value
BT_ISO_SYNC_TIMEOUT=0x07d0 /* 20 secs */.
I would like to know the rationale behind setting it to 20 seconds
initially. This value seems a bit long to me. Can I directly change this
value as:
BT_ISO_SYNC_TIMEOUT=0x00C8 /* 2 secs */
Signed-off-by: Yang Li <yang.li@xxxxxxxxxxx>
---
net/bluetooth/hci_sync.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
index f04a90bce4a9..58292b01f062 100644
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -7159,7 +7159,7 @@ static int hci_le_pa_create_sync(struct hci_dev *hdev, void *data)
if (conn->sid == HCI_SID_INVALID) {
err = __hci_cmd_sync_status_sk(hdev, HCI_OP_NOP, 0, NULL,
HCI_EV_LE_EXT_ADV_REPORT,
- conn->conn_timeout, NULL);
+ HCI_CMD_TIMEOUT, NULL);
if (err == -ETIMEDOUT)
goto done;
}
@@ -7187,7 +7187,7 @@ static int hci_le_pa_create_sync(struct hci_dev *hdev, void *data)
err = __hci_cmd_sync_status_sk(hdev, HCI_OP_LE_PA_CREATE_SYNC,
sizeof(cp), &cp,
HCI_EV_LE_PA_SYNC_ESTABLISHED,
- conn->conn_timeout, NULL);
+ HCI_CMD_TIMEOUT, NULL);
if (err == -ETIMEDOUT)
__hci_cmd_sync_status(hdev, HCI_OP_LE_PA_CREATE_SYNC_CANCEL,
0, NULL, HCI_CMD_TIMEOUT);
---
base-commit: bdb9aba465a85122bcba01a6154e237b9843e25b
change-id: 20260108-pa_sync_cmd_timeout-ff46f67b5d2a
Best regards,
--
Yang Li <yang.li@xxxxxxxxxxx>
--
Luiz Augusto von Dentz