From: Luiz Augusto von Dentz Date: Fri, 27 Jun 2025 15:18:29 +0000 (-0400) Subject: Bluetooth: ISO: Don't initiate CIS connections if there are no buffers X-Git-Tag: v6.17.8~189 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7204774fbc0c1bf54000307cff642ff4599d8549;p=thirdparty%2Fkernel%2Fstable.git Bluetooth: ISO: Don't initiate CIS connections if there are no buffers [ Upstream commit d79c7d01f1c8bcf9a48337c8960d618fbe31fc0c ] If the controller has no buffers left return -ENOBUFF to indicate that iso_cnt might be out of sync. Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Sasha Levin --- diff --git a/net/bluetooth/iso.c b/net/bluetooth/iso.c index 6e2923b301505..3b2a4a9d79d61 100644 --- a/net/bluetooth/iso.c +++ b/net/bluetooth/iso.c @@ -460,6 +460,13 @@ static int iso_connect_cis(struct sock *sk) goto unlock; } + /* Check if there are available buffers for output/TX. */ + if (iso_pi(sk)->qos.ucast.out.sdu && !hci_iso_count(hdev) && + (hdev->iso_pkts && !hdev->iso_cnt)) { + err = -ENOBUFS; + goto unlock; + } + /* Just bind if DEFER_SETUP has been set */ if (test_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags)) { hcon = hci_bind_cis(hdev, &iso_pi(sk)->dst,