deepin-kernel/net/bluetooth
Luiz Augusto von Dentz d9b73c5aaa Bluetooth: L2CAP: Fix attempting to adjust outgoing MTU
[ Upstream commit d24e4a7fedae121d33fb32ad785b87046527eedb ]

Configuration request only configure the incoming direction of the peer
initiating the request, so using the MTU is the other direction shall
not be used, that said the spec allows the peer responding to adjust:

Bluetooth Core 6.1, Vol 3, Part A, Section 4.5

 'Each configuration parameter value (if any is present) in an
 L2CAP_CONFIGURATION_RSP packet reflects an ‘adjustment’ to a
 configuration parameter value that has been sent (or, in case of
 default values, implied) in the corresponding
 L2CAP_CONFIGURATION_REQ packet.'

That said adjusting the MTU in the response shall be limited to ERTM
channels only as for older modes the remote stack may not be able to
detect the adjustment causing it to silently drop packets.

Link: https://github.com/bluez/bluez/issues/1422
Link: https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/issues/149
Link: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4793
Fixes: 042bb9603c44 ("Bluetooth: L2CAP: Fix L2CAP MTU negotiation")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit bd3051a816211fb3e721fe88169a7ce0d7e11c14)
2025-07-28 15:19:06 +08:00
..
bnep Bluetooth: bnep: fix wild-memory-access in proto_unregister 2024-12-10 20:43:05 +08:00
cmtp Merge branch 'signal-for-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2022-01-17 05:49:30 +02:00
hidp Bluetooth: Init sk_peer_* on bt_sock_alloc 2023-08-11 11:37:22 -07:00
rfcomm Revert "Bluetooth: hci_core: Fix sleeping function called from invalid context" 2025-03-23 19:26:40 +08:00
6lowpan.c Bluetooth: Fix error code in chan_alloc_skb_cb() 2025-04-14 13:52:12 +08:00
Kconfig Bluetooth: Remove BT_HS 2024-03-26 18:19:37 -04:00
Makefile Bluetooth: Remove BT_HS 2024-03-26 18:19:37 -04:00
af_bluetooth.c Bluetooth: SCO: Fix UAF on sco_sock_timeout 2024-12-10 20:43:10 +08:00
aosp.c Bluetooth: Fix null pointer deref on unexpected status event 2022-08-08 17:04:37 -07:00
aosp.h Bluetooth: aosp: Support AOSP Bluetooth Quality Report 2021-11-02 19:37:52 +01:00
coredump.c Bluetooth: Remove unnecessary NULL check before vfree() 2023-08-11 11:56:54 -07:00
ecdh_helper.c Bluetooth: Use crypto_wait_req 2023-02-13 18:34:48 +08:00
ecdh_helper.h Fix misc new gcc warnings 2021-04-27 17:05:53 -07:00
eir.c Bluetooth: Fix NULL pointer deference on eir_get_service_data 2025-06-20 14:40:37 +08:00
eir.h Bluetooth: Add initial implementation of BIS connections 2022-07-22 17:13:56 -07:00
hci_codec.c Bluetooth: Fix support for Read Local Supported Codecs V2 2022-12-02 13:09:31 -08:00
hci_codec.h Bluetooth: Add support for Read Local Supported Codecs V2 2021-09-07 14:09:18 -07:00
hci_conn.c Bluetooth: hci_conn: Reduce hci_conn_drop() calls in two functions 2025-01-13 11:06:44 +08:00
hci_core.c Bluetooth: hci_core: Fix use-after-free in vhci_flush() 2025-07-14 10:42:15 +08:00
hci_debugfs.c Bluetooth: Fix TOCTOU in HCI debugfs implementation 2024-04-10 16:35:49 +02:00
hci_debugfs.h Bluetooth: hci_core: Move all debugfs handling to hci_debugfs.c 2021-09-22 16:17:13 +02:00
hci_event.c Bluetooth: HCI: Set extended advertising data synchronously 2025-07-22 16:16:40 +08:00
hci_request.c Bluetooth: Fix memory leak in hci_req_sync_complete() 2024-04-17 11:19:25 +02:00
hci_request.h Bluetooth: Delete unused hci_req_prepare_suspend() declaration 2023-09-20 10:55:29 -07:00
hci_sock.c Bluetooth: hci_sock: Fix not validating setsockopt user input 2024-12-10 20:42:18 +08:00
hci_sync.c Bluetooth: hci_sync: fix connectable extended advertising when using static random address 2025-07-28 15:19:06 +08:00
hci_sysfs.c Bluetooth: fix use-after-free in device_for_each_child() 2024-12-10 20:44:43 +08:00
iso.c Revert "Bluetooth: hci_core: Fix sleeping function called from invalid context" 2025-03-23 19:26:40 +08:00
l2cap_core.c Bluetooth: L2CAP: Fix attempting to adjust outgoing MTU 2025-07-28 15:19:06 +08:00
l2cap_sock.c Bluetooth: Fix null-ptr-deref in l2cap_sock_resume_cb() 2025-07-28 15:19:06 +08:00
leds.c
leds.h
lib.c Bluetooth: Fix EALREADY and ELOOP cases in bt_status() 2022-12-12 14:19:24 -08:00
mgmt.c Bluetooth: MGMT: mesh_send: check instances prior disabling advertising 2025-07-14 10:42:11 +08:00
mgmt_config.c Bluetooth: mgmt: Use the correct print format 2021-06-26 07:12:42 +02:00
mgmt_config.h
mgmt_util.c Bluetooth: MGMT: Protect mgmt_pending list with its own lock 2025-06-20 14:40:26 +08:00
mgmt_util.h Bluetooth: MGMT: Protect mgmt_pending list with its own lock 2025-06-20 14:40:26 +08:00
msft.c Bluetooth: msft: fix slab-use-after-free in msft_do_close() 2024-12-10 20:19:48 +08:00
msft.h Bluetooth: msft: fix slab-use-after-free in msft_do_close() 2024-12-10 20:19:48 +08:00
sco.c Revert "Bluetooth: hci_core: Fix sleeping function called from invalid context" 2025-03-23 19:26:40 +08:00
selftest.c crypto: ecdh - move curve_id of ECDH from the key to algorithm name 2021-03-13 00:04:03 +11:00
selftest.h
smp.c Bluetooth: SMP: Fix using HCI_ERROR_REMOTE_USER_TERM on timeout 2025-07-28 15:19:06 +08:00
smp.h Bluetooth: SMP: If an unallowed command is received consider it a failure 2025-07-28 15:19:06 +08:00