diff options
| author | Aldo Ariel Panzardo <qwe.aldo@gmail.com> | 2026-09-15 13:04:30 -0300 |
|---|---|---|
| committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2026-09-16 13:51:34 -0400 |
| commit | 0fcd4dad555c96e0bd3a1b8c569f989be85c7341 (patch) | |
| tree | caaef7eb1e3bf030540faf86d4a02ef698af5a71 /tools/perf/scripts/python/stackcollapse.py | |
| parent | e06d549fcd4a0ba381ed67ddf1ab3c7a6ca4314c (diff) | |
| download | linux-0fcd4dad555c96e0bd3a1b8c569f989be85c7341.tar.gz linux-0fcd4dad555c96e0bd3a1b8c569f989be85c7341.zip | |
Bluetooth: ISO: release unused CIS holds after channel attach
hci_bind_cis() and hci_connect_cis() return one hci_conn hold for the
ISO layer. A new channel association consumes that hold, which is
eventually released by iso_conn_free().
There are two cases where iso_chan_add() does not create an association:
it returns success when the socket is already attached to the same
iso_conn, and it returns -EBUSY when another socket is attached. The
hold returned for the current call is unused in both cases. This occurs
when deferred setup calls iso_connect_cis() again for its existing
socket, or when another socket attempts to reuse the CIS.
Detect the idempotent case while the connection is locked and release
the unused hold after iso_chan_add(). Also release it on -EBUSY. Do not
drop it for other errors: a newly allocated iso_conn releases the
transferred hold when its last temporary reference is put.
Fixes: 69997d50ec57 ("Bluetooth: ISO: handle bound CIS cleanup via hci_conn")
Cc: stable@vger.kernel.org
Signed-off-by: Aldo Ariel Panzardo <qwe.aldo@gmail.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
