Bluetooth: ISO: use correct CIS order in Set CIG Parameters event
authorPauli Virtanen <pav@iki.fi>
Thu, 1 Jun 2023 06:34:45 +0000 (09:34 +0300)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tue, 6 Jun 2023 00:14:07 +0000 (17:14 -0700)
commit71e9588435c38112d6a8686d3d8e7cc1de8fe22c
tree8d193ca0c279cbf7edcb29c82e9957e5a0e849f0
parent6c242c64a09e78349fb0a5f0a6f8076a3d7c0bb4
Bluetooth: ISO: use correct CIS order in Set CIG Parameters event

The order of CIS handle array in Set CIG Parameters response shall match
the order of the CIS_ID array in the command (Core v5.3 Vol 4 Part E Sec
7.8.97).  We send CIS_IDs mainly in the order of increasing CIS_ID (but
with "last" CIS first if it has fixed CIG_ID).  In handling of the
reply, we currently assume this is also the same as the order of
hci_conn in hdev->conn_hash, but that is not true.

Match the correct hci_conn to the correct handle by matching them based
on the CIG+CIS combination.  The CIG+CIS combination shall be unique for
ISO_LINK hci_conn at state >= BT_BOUND, which we maintain in
hci_le_set_cig_params.

Fixes: 26afbd826ee3 ("Bluetooth: Add initial implementation of CIS connections")
Signed-off-by: Pauli Virtanen <pav@iki.fi>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
include/net/bluetooth/hci_core.h
net/bluetooth/hci_event.c