* [PATCH v2] Bluetooth: hci_sync: Fix not setting CE length properly
@ 2026-09-02 17:16 Luiz Augusto von Dentz
2026-09-02 19:29 ` [v2] " bluez.test.bot
2026-09-03 20:00 ` [PATCH v2] " patchwork-bot+bluetooth
0 siblings, 2 replies; 3+ messages in thread
From: Luiz Augusto von Dentz @ 2026-09-02 17:16 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Both hci_le_set_def_rate_sync() and hci_le_conn_rate_request_sync() were
leaving Min_CE_Length and Max_CE_Length set to 0x0000, but the connection
event length recommended in requests by a Peripheral has a valid range of
0x0001 to 0x7CFF (Time = N * 125 us, Time Range: 0.125 ms to 3.999875 s),
so 0x0000 cannot be used.
Set both to the minimum valid value, which is safe since the Controller
is not required to use these values:
BLUETOOTH CORE SPECIFICATION Version 6.2 | Vol 4, Part E
7.8.157. LE Connection Rate Request command
7.8.158. LE Set Default Rate Parameters command
The Min_CE_Length and Max_CE_Length parameters provide the Controller
with the expected minimum and maximum length of the connection events.
The Controller is not required to use these values.
Fixes: 2f8784cfe8a9 ("Bluetooth: Add support for Shorter Connection Interval (SCI) feature")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
---
net/bluetooth/hci_sync.c | 38 ++++++++++++++++++++++++++++++++++++--
1 file changed, 36 insertions(+), 2 deletions(-)
diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
index 24eeb76f7207..5376ade2cdc1 100644
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -4797,6 +4797,24 @@ static int hci_le_set_def_rate_sync(struct hci_dev *hdev)
cp.cont_num = cpu_to_le16(0x0001);
cp.supv_timeout = cpu_to_le16(0x000c); /* 120 ms */
+ /* The connection event length recommended in requests by a Peripheral
+ * uses units of 125 us with a valid range of 0x0001 to 0x7CFF
+ * (0.125 ms to 3.999875 s), so 0x0000 cannot be used. Also note that
+ * the Controller is not required to use these values:
+ *
+ * BLUETOOTH CORE SPECIFICATION Version 6.2 | Vol 4, Part E
+ * 7.8.158. LE Set Default Rate Parameters command
+ *
+ * The Min_CE_Length and Max_CE_Length parameters provide the
+ * Controller with the expected minimum and maximum length of the
+ * connection events. The Controller is not required to use these
+ * values.
+ *
+ * So it is safe to just use the minimum.
+ */
+ cp.min_ce_len = cpu_to_le16(0x0001);
+ cp.max_ce_len = cpu_to_le16(0x0001);
+
return __hci_cmd_sync_status(hdev, HCI_OP_LE_SET_DEF_RATE,
sizeof(cp), &cp, HCI_CMD_TIMEOUT);
}
@@ -7457,8 +7475,24 @@ static int hci_le_conn_rate_request_sync(struct hci_dev *hdev, void *data)
cp.max_latency = cpu_to_le16(params->max_latency);
cp.cont_num = cpu_to_le16(params->cont_num);
cp.supv_timeout = cpu_to_le16(params->rate_supv_timeout);
- cp.min_ce_len = cpu_to_le16(0x0000);
- cp.max_ce_len = cpu_to_le16(0x0000);
+
+ /* The connection event length recommended in requests by a Peripheral
+ * uses units of 125 us with a valid range of 0x0001 to 0x7CFF
+ * (0.125 ms to 3.999875 s), so 0x0000 cannot be used. Also note that
+ * the Controller is not required to use these values:
+ *
+ * BLUETOOTH CORE SPECIFICATION Version 6.2 | Vol 4, Part E
+ * 7.8.157. LE Connection Rate Request command
+ *
+ * The Min_CE_Length and Max_CE_Length parameters provide the
+ * Controller with the expected minimum and maximum length of the
+ * connection events. The Controller is not required to use these
+ * values.
+ *
+ * So it is safe to just use the minimum.
+ */
+ cp.min_ce_len = cpu_to_le16(0x0001);
+ cp.max_ce_len = cpu_to_le16(0x0001);
hci_dev_unlock(hdev);
--
2.54.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* RE: [v2] Bluetooth: hci_sync: Fix not setting CE length properly
2026-09-02 17:16 [PATCH v2] Bluetooth: hci_sync: Fix not setting CE length properly Luiz Augusto von Dentz
@ 2026-09-02 19:29 ` bluez.test.bot
2026-09-03 20:00 ` [PATCH v2] " patchwork-bot+bluetooth
1 sibling, 0 replies; 3+ messages in thread
From: bluez.test.bot @ 2026-09-02 19:29 UTC (permalink / raw)
To: linux-bluetooth, luiz.dentz
[-- Attachment #1: Type: text/plain, Size: 2470 bytes --]
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=1156356
---Test result---
Test Summary:
CheckPatch PASS 0.77 seconds
VerifyFixes PASS 0.14 seconds
VerifySignedoff PASS 0.14 seconds
GitLint PASS 0.34 seconds
SubjectPrefix PASS 0.13 seconds
BuildKernel PASS 26.69 seconds
CheckAllWarning PASS 29.26 seconds
CheckSparse PASS 28.22 seconds
BuildKernel32 PASS 25.81 seconds
CheckKernelLLVM SKIP 0.00 seconds
TestRunnerSetup PASS 473.35 seconds
TestRunner_l2cap-tester PASS 65.29 seconds
TestRunner_iso-tester PASS 102.49 seconds
TestRunner_bnep-tester PASS 19.82 seconds
TestRunner_mgmt-tester FAIL 216.48 seconds
TestRunner_rfcomm-tester PASS 25.93 seconds
TestRunner_sco-tester PASS 31.80 seconds
TestRunner_ioctl-tester PASS 26.30 seconds
TestRunner_mesh-tester FAIL 26.35 seconds
TestRunner_smp-tester PASS 23.61 seconds
TestRunner_userchan-tester PASS 20.21 seconds
TestRunner_6lowpan-tester PASS 23.98 seconds
IncrementalBuild PASS 24.79 seconds
Details
##############################
Test: CheckKernelLLVM - SKIP
Desc: Build kernel with LLVM + context analysis
Output:
Clang not found
##############################
Test: TestRunner_mgmt-tester - FAIL
Desc: Run mgmt-tester with test-runner
Output:
Total: 501, Passed: 495 (98.8%), Failed: 2, Not Run: 4
Failed Test Cases
Read Exp Feature - Success Failed 0.240 seconds
LL Privacy - Set Flags 3 (2 Devices to RL) Failed 0.452 seconds
##############################
Test: TestRunner_mesh-tester - FAIL
Desc: Run mesh-tester with test-runner
Output:
Total: 10, Passed: 8 (80.0%), Failed: 2, Not Run: 0
Failed Test Cases
Mesh - Send cancel - 1 Timed out 2.556 seconds
Mesh - Send cancel - 2 Timed out 1.992 seconds
https://github.com/bluez/bluetooth-next/pull/690
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] Bluetooth: hci_sync: Fix not setting CE length properly
2026-09-02 17:16 [PATCH v2] Bluetooth: hci_sync: Fix not setting CE length properly Luiz Augusto von Dentz
2026-09-02 19:29 ` [v2] " bluez.test.bot
@ 2026-09-03 20:00 ` patchwork-bot+bluetooth
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+bluetooth @ 2026-09-03 20:00 UTC (permalink / raw)
To: Luiz Augusto von Dentz; +Cc: linux-bluetooth
Hello:
This patch was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:
On Wed, 2 Sep 2026 13:16:26 -0400 you wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
>
> Both hci_le_set_def_rate_sync() and hci_le_conn_rate_request_sync() were
> leaving Min_CE_Length and Max_CE_Length set to 0x0000, but the connection
> event length recommended in requests by a Peripheral has a valid range of
> 0x0001 to 0x7CFF (Time = N * 125 us, Time Range: 0.125 ms to 3.999875 s),
> so 0x0000 cannot be used.
>
> [...]
Here is the summary with links:
- [v2] Bluetooth: hci_sync: Fix not setting CE length properly
https://git.kernel.org/bluetooth/bluetooth-next/c/88a8184cb44c
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-03 20:01 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-02 17:16 [PATCH v2] Bluetooth: hci_sync: Fix not setting CE length properly Luiz Augusto von Dentz
2026-09-02 19:29 ` [v2] " bluez.test.bot
2026-09-03 20:00 ` [PATCH v2] " patchwork-bot+bluetooth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox