]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Bluetooth: ISO: Fix defer tests being unstable
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 27 Feb 2026 20:23:01 +0000 (15:23 -0500)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Thu, 12 Mar 2026 19:26:48 +0000 (15:26 -0400)
iso-tester defer tests seem to fail with hci_conn_hash_lookup_cig
being unable to resolve a cig in set_cig_params_sync due a race
where it is run immediatelly before hci_bind_cis is able to set
the QoS settings into the hci_conn object.

So this moves the assigning of the QoS settings to be done directly
by hci_le_set_cig_params to prevent that from happening again.

Fixes: 26afbd826ee3 ("Bluetooth: Add initial implementation of CIS connections")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
net/bluetooth/hci_conn.c

index 4719dac0719005ef04e82286f5941c9aec1b9caf..6eb59e9f2aa834030c885c2d721f70bae9d71b2d 100644 (file)
@@ -1944,6 +1944,8 @@ static bool hci_le_set_cig_params(struct hci_conn *conn, struct bt_iso_qos *qos)
                return false;
 
 done:
+       conn->iso_qos = *qos;
+
        if (hci_cmd_sync_queue(hdev, set_cig_params_sync,
                               UINT_PTR(qos->ucast.cig), NULL) < 0)
                return false;
@@ -2013,8 +2015,6 @@ struct hci_conn *hci_bind_cis(struct hci_dev *hdev, bdaddr_t *dst,
        }
 
        hci_conn_hold(cis);
-
-       cis->iso_qos = *qos;
        cis->state = BT_BOUND;
 
        return cis;