diff options
| author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2026-01-21 16:39:44 -0500 |
|---|---|---|
| committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2026-01-29 13:36:35 -0500 |
| commit | 6c3ea155e5ee3e56606233acde8309afda66d483 (patch) | |
| tree | e0a6b1dc34d9b4ef2b281123e6d56c7707d74d50 /include/net | |
| parent | 4db19bfd320f2124c820d3456aeae3953095ea8e (diff) | |
Bluetooth: L2CAP: Fix not tracking outstanding TX ident
This attempts to proper track outstanding request by using struct ida
and allocating from it in l2cap_get_ident using ida_alloc_range which
would reuse ids as they are free, then upon completion release
the id using ida_free.
This fixes the qualification test case L2CAP/COS/CED/BI-29-C which
attempts to check if the host stack is able to work after 256 attempts
to connect which requires Ident field to use the full range of possible
values in order to pass the test.
Link: https://github.com/bluez/bluez/issues/1829
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/bluetooth/l2cap.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index 00e182a22720..ec3af01e4db9 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h @@ -655,8 +655,7 @@ struct l2cap_conn { struct sk_buff *rx_skb; __u32 rx_len; - __u8 tx_ident; - struct mutex ident_lock; + struct ida tx_ida; struct sk_buff_head pending_rx; struct work_struct pending_rx_work; |
