ACK: [SRU][N/J][PATCH 0/1] Fix L2CAP/LE/CPU/BI-02-C bluetooth certification failure
Kevin Becker
kevin.becker at canonical.com
Wed Jul 24 16:50:44 UTC 2024
On Mon, Jul 22, 2024 at 11:52 PM Yo-Jung (Leo) Lin
<leo.lin at canonical.com> wrote:
>
> BugLink: https://bugs.launchpad.net/bugs/2072858
>
> [Impact]
>
> Noble failed the L2CAP/LE/CPU/BI-02-C test in the Porfile Tuning Suite (PTS),
> which Jammy previously could pass.
>
> This is due to new behavior introduced in e4b019515f950b4e6e5b74b2e1bb03a90cb33039.
> (Bluetooth: Enforce validation on max value of connection interval). The kernel
> only accept Connection Parameter Update Requests whose incoming conn_max_interval
> are lower than the current conn_max_interval, and adjust the newer
> conn_max_interval to that received max value.
>
> However, this behavior means that conn_max_interval can only decrease, but never
> increase. This could potentially make the conditions for connection parameters
> narrower over time, causing subsequent connections failed on some devices.
> See the issue 847 in bluez upstream[1]. The patch 806a5198c05987b748b50f3d0c0cfb3d417381a4
> (Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ) in the linux-next
> fixed this by accepting connection parameter unconditionally. The relavent test
> procedure is also on the mailing list[2].
>
> [1] https://github.com/bluez/bluez/issues/847
> [2] https://linuxlists.cc/l/15/linux-bluetooth/t/5350289/(patch_v3)_bluetooth:_l2cap:_fix_rejecting_l2cap_conn_param_update_req#post5352326
>
> [Fix]
> Backport the from commit 806a5198c05987b748b50f3d0c0cfb3d417381a4
> (Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ), which
> already in the linux-next.
>
> [1] https://patchwork.kernel.org/project/bluetooth/patch/20240521143521.1568672-1-luiz.dentz@gmail.com/
>
> [Test Case]
> 1. Install the kernel with the backported patch
> 2. Run the following test case in the PTS:
> L2CAP/LE/CPU/BI-02-C
> GAP/CONN/CPUP/BV-05-C
>
> [Where problems could occur]
> This essentially revert the behavior of accepting L2CAP connection parameters
> back to its original state before e4b019515f950b4e6e5b74b2e1bb03a90cb33039
> (Bluetooth: Enforce validation on max value of connection interval).
>
> Note that implementing restriction to the conenction parameters may take greater
> effort than just adding a few checks in the kernel. The user space, notably the
> bluetoothd may also need adjustments[1]. So in this case, removing the half-done
> boundary checks in kernel may still do greater good if there's no plan to make
> those additional changes.
>
> [1] https://github.com/bluez/bluez/issues/717#issuecomment-1885719058
>
> Luiz Augusto von Dentz (1):
> Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ
>
> include/net/bluetooth/hci_core.h | 36 ++++++++++++++++++++++++++++----
> net/bluetooth/l2cap_core.c | 8 +------
> 2 files changed, 33 insertions(+), 11 deletions(-)
>
> --
Acked-by: Kevin Becker <kevin.becker at canonical.com>
More information about the kernel-team
mailing list