From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=209.85.217.46 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794429465; b=o3DZaOC7Tvh55jM/Ae6ZaB3nF6GdmU5/HapqsnJF3w4nVwtRfoF0lc1yZBLhZk7sHHxY vNEaVdyUZrO1L9Gxis2wBjPIiR1BAQxBCopB5/PZb2MsOg8eSAVG30IbYd5gIlj1D6Em/ FGCbZBy9DtNHJUgfSAkmjTqnVg9pwaIaV1Uh1U0n3/w753rdmhr1DdO4TjVXAAqt26Xq9 fjDJwpE0DmgRGO8Tql3xXehN4VBLwkZq3l8ljuLUSQJS37EJQGup1VVf6zaLS9/1t25Y9 vDnCWARMo2FhssLqlOcIigrnbbIP2VsJKhF+kF0/EEn6ylZ3e3unk87YYRpEUOiFkrg== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794429465; h=DMARC-Filter:Received:DKIM-Signature:X-Google-DKIM-Signature: X-Gm-Message-State:X-Gm-Gg:X-Received:Received:From:To:Subject:Date: Message-ID:X-Mailer:MIME-Version:Content-Transfer-Encoding; bh=lJ/T2ojLJz9J2y9+jRv76agWIeKrZTEIqHnZmgoDlrw=; b=StnU++aQf+3q1Pu1TiSmnXf5RqpZrqTW07tv7WfcknT4FUqQnwM1zdE3m7OHm9ZPuc2d Vx2Cqk/cQTMJr1jFpRzfVoefeicDIA5pAOZrFpKwidLGe2xS69rvBtneaZQ01j95mRCbh GhRITpo9x1QZhjJgQ+0qa6oNQ75V6GcBuuFyCe5oA3tXwiE6DVvSWZXqVAGFbvCTZcWrg kjt5YzubZ9F+1xXz6oJxQe4rEJqOkjz4tCz3hP5z/a/AUEex89mlg7ESTUwTokMzfVCdd 2ZW2jsm20QdvrV3h0IaP1g0RmRli/tpX9XToMDD65+fFdEw88bKywQqvaa6CYA89HZw== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20260707 header.b=Bjilzmv5; arc=none smtp.remote-ip=209.85.217.46 Received: from mail-vs1-f46.google.com (mail-vs1-f46.google.com [209.85.217.46]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 26D5D606A8B1 for ; Wed, 11 Nov 2026 20:37:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 26D5D606A8B1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20260707 header.b=Bjilzmv5 Received: by mail-vs1-f46.google.com with SMTP id ada2fe7eead31-7cc53938a8fso2348449137.2 for ; Wed, 11 Nov 2026 12:37:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794429464; x=1795034264; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=lJ/T2ojLJz9J2y9+jRv76agWIeKrZTEIqHnZmgoDlrw=; b=Bjilzmv5izRq+hPViFUJcmLmZX9GBp1B5yybMwVbg6pb50vT4QjJ0eUxoZKW6P5B0J 00+p6TqvtZoa1ddZfAa9qbgJUD/4PnKiefLQNOElLS7qZNPPaE30pWfjx+IzXmSfhX0y lsaFcEcccIeLfLJyq6rlWFEQdlUZGqcCV1r67MQF+s9UHTaUYMQQXmsxj1X8QI5rm2fE l9aPod0OdFeELyjHKbGX8b3WmwgU2SW/EzH+vq1S6kkJr8Xz0qjK7tPNa+mO0OzIB8xY ouOT1eI+JfDery0mS/LhAgwLND0rswaeBX/NZntJe39MOOdEYw6Ejef7FE76cG6fM50b ROiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794429464; x=1795034264; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to:content-type; bh=lJ/T2ojLJz9J2y9+jRv76agWIeKrZTEIqHnZmgoDlrw=; b=VsOjhdVnneb2IKvIhnUnudfAUGa1D5jU+kSp60SJOR57eXkpxSuTFmyx+BY9o01/nx fFbwuxxocdQMlBVjYRu/ep6bAucDovddB/MmJIIjHmyhLDhGZAhqY4vtBKCxkrXc1t2l 66HbcWSxEHUEmL7F1wZ3x057j/Nr763tufgN8sNb9T/TF87gy1+pKDms8KeGs7y2CnfH rcEB/TQylDNelSYpeUBJQK9ns9Yv4Ajt8/aNgab36OmOe9bnstix/qeH2VUNT71uEU/G MgY8VZaPTr/Em/jwCcTO8jaxfhgoVJWlHMY/mTQUZVRe2X65z33X9wTQO1irXaTyr3kg yh4A== X-Gm-Message-State: APuU4Z9X6yh4EGBz6AArqCli9ZFuOHq5fOoBwpAn7QDynlgDImOvKKQ8 JlYt7uEfUseHJkha4+usYVx5fS2GEem/wwGyOZHLCAQX/ijisI55+H8rgrRj8w== X-Gm-Gg: AYBFou2QnfUK6trkNbi6ZEk2mSgKAzMGUi896rYW+NYPF+kBMFW7pyDEzdj6LqITu9l b3S67paPCL1yB2lNF5KTXyA0Vyu+TICX8oKeVmnugm9fBRRpOKdKnFNbBQ6vMbJSiJBLWlHTPOS F74MkeuS8TWtdg13INddPz57cKCs4iibo6W8zLex8evNfNrdWm4l7omCGPX7ALUczPHyogt71/n 4VoHEJA9mLEHc1cIL5r6FDB5tu5bRfqcxEB52kFYFSVoHwSGPhEdeQQayeIH2vxWYur0Iz499B7 GNvO+4TPDeBEuqcBFAEKEGqLycpJwRWPWkWt0Y55rpB95tq7X3Rj00l8HBsfWbt+CftsIEw/BUP sApYcGKI0/GBVPOEOmJZmKV6IWyIHjH4902NXdtUhFMt9HaF93bWva+hyI39Eybxi4MEASDOLZw dKH/1TLaibu5sTVD/gjKtnoK/DNfDR/g6cMTNM+/wmwC3lMcj1ErtVyYiTYHV7TdwU8rcPf20r1 sEcXoP5tfPcjen0gSO9ewAaW54JNRy15EpK0y9Ug9Sp/kyK93Rah/7oGVmXH2XacFmwDDmeVq30 O9cY9JpioBWss7/lwuI4145MTDWlsbzz/8L4Og5DsO+1cRlQZ/yK5LtGL83RKi/v2MwsPJxP9Ik syyW6JKfGFbUSS9vOAd8X45d8Wt9DrX7r59I1G3SYTANQEj4ixLle8LCydlnnYpAfxKeX+Ojqk3 itB6k= X-Received: by 2002:a05:6102:3f8f:b0:7a8:10eb:96ce with SMTP id ada2fe7eead31-7d4eff7be70mr1567671137.4.1794429464134; Wed, 11 Nov 2026 12:37:44 -0800 (PST) Received: from lvondent-mobl5.taila91cb8.ts.net ([72.188.211.115]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-7d302359221sm4762571137.6.2026.11.11.12.37.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Nov 2026 12:37:43 -0800 (PST) From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ v3 0/5] shared/bap: Don't disconnect a CIS still used by another ASE Date: Wed, 11 Nov 2026 15:37:21 -0500 Message-ID: X-Mailer: git-send-email 2.56.0 X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Luiz Augusto von Dentz A remote initiator, e.g. a phone in a voice call, may enable the Source ASE of a CIS shared with a Sink ASE and then switch to the Sink ASE alone. The acceptor disconnected the CIS when the Source ASE detached from it, although the linked Sink ASE was still configured for it, and as the initiator does not request the CIS again, the Sink ASE was left enabled without a CIS and the voice stayed silent. Keep the CIS while another ASE is still configured for it. Unit tests cover releasing an ASE of a CIS kept by its link, of a shared CIS and switching the direction, and a functional test counts the CIS the acceptor is asked to accept. v2: Also tell the streams using the CIS of a linked stream when it is lost, not only the ones that hold it themselves. v3: Hold the IO of a link when an ASE enabled again over the CIS its link kept uses it (new patch 2/5), so disabling the link doesn't free the CIS while the ASE streams. The functional test covers it, and counts the second CIS requested after teardown. v2: Also tell the streams using the CIS of a linked stream when it is lost, not only the ones that hold it themselves. Luiz Augusto von Dentz (5): shared/bap: Don't disconnect a CIS still configured for a link shared/bap: Hold the IO of a link when using it unit/test-bap: Add tests for a CIS shared by two ASEs doc/functional-bap: Document switching the direction of a CIS test: functional: Cover switching the direction of a CIS doc/functional-bap.rst | 44 +++++++ src/shared/bap.c | 91 +++++++++++---- test/functional/test_bap.py | 86 ++++++++++++++ unit/test-bap.c | 227 ++++++++++++++++++++++++++++++++++++ 4 files changed, 423 insertions(+), 25 deletions(-) -- 2.56.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=209.85.217.45 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794429471; b=k1sh8P/xjM7vRby6OptZ5ALLQXGA8hUWkFHWGnuch2lXSPwG0B6Gky9RiEXd1Awc9ECO l3+xIWlb8s4Kj09zTucN28K/9/afduIFQC2Mdl59MO0/+bx5ZJUtsh1NrGw5fAWjDmD7g RsrP67s2CHt7Zo3peyC4d0wMNixMHW7xwKHu1oTCMnHDC4XGKgZtKLJYcnSQLobbBVXEm pO0yjAdfo137SDJ03eRyq0bjlLjMFxNEG/7eOOoi2NLf8tbhPf+0Y9Ej4Ls2B+70zFjvQ HtR22iAgjVd64Cf9Hf7yDPmu4Ky0l9HfI1X5Q4I8YeNjqd2kdfP7DVT6vLECnAb8d0A== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794429471; h=DMARC-Filter:Received:DKIM-Signature:X-Google-DKIM-Signature: X-Gm-Message-State:X-Gm-Gg:X-Received:Received:From:To:Subject:Date: Message-ID:X-Mailer:In-Reply-To:References:MIME-Version: Content-Transfer-Encoding; bh=hyZEz2IIND7FfOaXwVBU2Xa9igbEgJPAhwBTW7HuVyk=; b=bOpgLEGpv36eml2cq8Ce9sjXQZiMl+4QTC8Zm7PxZMvb/pGvOMJlD57Xt5kXyDQYvRPE +3OIePyMuRlElm1y99T55Qrp3b4kXPn3YI2bSSK1p7JI3St1mzS2Ly4p15315JxMkHLRK wJ8ydIGiJyCoLc+DP+OZMd1dRIvhcOrqG7LMBhG0wWm6MG9FXstc2Rbt49Ri8SC47tTmz XhqPP5fIkBdPrQbghBNDBYRdH0Ljn8E2GyOuUJ9NaLNzjsMfJ1eKzpGk7sDb3hEVPMH75 ZxQDnZVOFmvK6P+4a0cw3xxKIEqDrWZ+P5GJ+j8HL8moJFf++gHrgP4bVcTNZ0CBb5Q== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20260707 header.b=SzLOW5OY; arc=none smtp.remote-ip=209.85.217.45 Received: from mail-vs1-f45.google.com (mail-vs1-f45.google.com [209.85.217.45]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 61D1960A2607 for ; Wed, 11 Nov 2026 20:37:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 61D1960A2607 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20260707 header.b=SzLOW5OY Received: by mail-vs1-f45.google.com with SMTP id ada2fe7eead31-7cc53938a8fso2348504137.2 for ; Wed, 11 Nov 2026 12:37:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794429470; x=1795034270; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=hyZEz2IIND7FfOaXwVBU2Xa9igbEgJPAhwBTW7HuVyk=; b=SzLOW5OYhKQwpkWbfhLKNMYHD68Ew+kyIeHxNPunizQXUKGYTHAWOpLO01CLd30vHD aNJX/V0Vz+jGG1QsEAXIQIJdZgbbxTnXg7FRe41mSTPhi+/oWM9z4SCL3SqS4G1hUjys CXSGgLc9W703HWJGhnA6ZGhAfxF7EbOXh42moHNtLxqgNnTQiTmYPww7mXgsbb7gD9RY fenY7cL7l7K7VseHGJOXvsWoMVSnichJ5Bk5QH/fPdv6tzL+DHJDfxIW/txrZ6cga0Sx KYeuBw2o/0sB1CveKlei97mw94t23eX7m9hJEykQo3dZqkYs0CHhtD0FUY94dyGSrWId xeyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794429470; x=1795034270; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=hyZEz2IIND7FfOaXwVBU2Xa9igbEgJPAhwBTW7HuVyk=; b=JmF6QZfhoReXLcvphMcKLIrXcL/K8DAtNbsD/jkE6LHKEy2ODY3CXel0ca7xwC634H bHTZz21rCLvCO2jlR9F7wxquKSAKMRKSLJSs93KKH8TGBRMWqwTPg5U9MIrWo0Y1+jPw qDtgJoBxd/3+DF4HyM32gw8D/DAifpgkik8L08WY9YxCJeBPpxQuOEOOZZtzJwjs9g3e o0+sOs9ITWTrjY9EpKoIUQlaYBcLpusEb6iSHmdOi1EDSo+YZxsce7Zp+BH+FVoOJxLh Y/FQBfhu/Y9guBOQ2AfE4tz2qDq7mAVTjbH1Rku4iGDCES6/AEBcly1pMvRAM25ICQuA e/lQ== X-Gm-Message-State: APuU4Z/e8jXb5kcKBhPq4sgJ1eVjzHUzfL2BghSmrkgvG+FUHzJB47ms q15/sVF+CLoACJN18PjiZ7g+gOIVJR5GFRokMkSy77O/ENEVdpipmab9ARa/+Q== X-Gm-Gg: AYBFou2hByM35ALbE1ZMQAPy75HQJEvBundP0zbh7TIZ4Hq6q3nO5PFj28S1fQT3H6f DU5xys0LUA5o/xBX+dRcXVVacDWqUCYVGYvJqmAYrrImq2cMQANg273Xum19dvr8IX3kaeT5vKJ ChAyEWdqnxkBB+ev6Fl8tLXD7WoPet1vDAZ07eMVI9PCPis/1zV7PptDKM2v+bdAiL4hhXtEWv4 uj001af65MSi8OGB7DfWCtWndE7MQ0fc2d6fELz/B7otQ0jCWyCjTjGU7mU9gTsyVOoRdc8nim3 iElOENx2HlKahH3AxITMQFraiasZtT7GsSqj/3KgIlBahdFdyivUjBWdIgXFQ7ZSGK2J7CGT2NB GX0b1V23lyHTuivjaq0ZF8+ti/imZvm6L403dMEGW3z2BeEQgG3BssAXzEJkwL3mX0M66nAUtP+ eExCBySXzSIGZtGzwSyCfbp+5yyU1UXD9o7cDEGiQ5Hy3J4ZxMz2F0ixJ7L7E0BMt6puzFNqrqe +M53JSBmdBapgEQhBzpU3myCxT5zidcTABgLnZe2i0b92/4y8a1XTDKd28ObJ4EDDlvqIlGmpa5 VqQneA0U0X/avmyKlJrvHiZVG0LRwuqlqAIfv+HTWHGHoy2FG7WfTDVf1SOdGNO+wSD+Ztuc/Kd uJLEz+Fy0D6JviROfa+gIiug5yi/cX0S4Mu4A1u0nIQ43x/diP31/W5x6C6NpK1AJFbk3AwcX/C ekzpNEjm4gpMJq8nF/O80zCRNE0w== X-Received: by 2002:a05:6102:5241:b0:7d2:d9c0:2e96 with SMTP id ada2fe7eead31-7d50610bd23mr1763447137.31.1794429470329; Wed, 11 Nov 2026 12:37:50 -0800 (PST) Received: from lvondent-mobl5.taila91cb8.ts.net ([72.188.211.115]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-7d302359221sm4762571137.6.2026.11.11.12.37.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Nov 2026 12:37:49 -0800 (PST) From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ v3 0/6] bap: Release cached ASEs on ClearConfiguration Date: Wed, 11 Nov 2026 15:37:27 -0500 Message-ID: X-Mailer: git-send-email 2.56.0 In-Reply-To: References: X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID: <20261111203727._KemEhYsa58qvHSRE0Gz_bwmUXfOvDQ2ulF2r7KDrgc@z> From: Luiz Augusto von Dentz An acceptor may keep an ASE in Codec Configured, caching its codec configuration, once the initiator removes the transport. The initiator then has no way to get rid of it, as it no longer has a transport to release. Release such cached ASEs on ClearConfiguration of an endpoint, and add endpoint.clear to bluetoothctl to exercise it, with a functional test. This series is independent of the other two. v2: Wait for the release of the cached ASEs before replying to ClearConfiguration, validate the transport path of endpoint.clear and update the remote PAC of an ASE when it is reused (new patch 2/6). v3: Reply to ClearConfiguration once the cached ASEs are idle, and report a failed release as an error. v2: Wait for the release of the cached ASEs before replying, validate the transport path of endpoint.clear and update the remote PAC of an ASE when it is reused (new patch 2/6). Luiz Augusto von Dentz (6): shared/bap: Add bt_bap_foreach_stream and bt_bap_stream_get_rpac shared/bap: Update the remote PAC when reusing an ASE bap: Release cached ASEs on ClearConfiguration of an endpoint client/player: Add endpoint.clear command doc/functional-bap: Document clearing a cached configuration test: functional: Cover clearing a cached configuration client/player.c | 57 ++++++++++++ doc/bluetoothctl-endpoint.rst | 20 +++++ doc/functional-bap.rst | 24 +++++ profiles/audio/bap.c | 159 ++++++++++++++++++++++++++++++++-- src/shared/bap.c | 32 +++++++ src/shared/bap.h | 8 ++ test/functional/test_bap.py | 23 +++++ 7 files changed, 314 insertions(+), 9 deletions(-) -- 2.56.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=209.85.222.46 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794429478; b=XQ0hYPNa3hQx6T2M3t8uB1zyOT4tVxJFZKpRAr7UyC1Y0gr3p8jes3WkElhf5U8dKykB 9qudk0L86r0c9aJn3LJjs1ryqLI1+0Nob/WPpyQztxHR7u0uICOn3IwvvXwpcGQAIGlt/ BArtrd10WL9HPITkqyYOdoW2Ktv/qmyIsMrjVRDa4/WmGtT9A8lJgF9H5tKAPhgxT8YUW uoIX0aXnzANpSSbMp3AY2zWDtd9vmGbBCOZADasxEsMPYe8LJ3GjBMwVXnT50d9nUppcF ylwwzUwZXIRhzOkY0mde8lS+1gRyMMekwIESqU9mcEiezHvRN7447FoxlfItOkN6GTA== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794429478; h=DMARC-Filter:Received:DKIM-Signature:X-Google-DKIM-Signature: X-Gm-Message-State:X-Gm-Gg:X-Received:Received:From:To:Subject:Date: Message-ID:X-Mailer:In-Reply-To:References:MIME-Version: Content-Transfer-Encoding; bh=gnErk2hoIj8sp0I2N1pPn4DjMDV/O+wPgLT9tM5Mzec=; b=W5r2Z237KOP9WXo4NGUih3pB0IoDRNe7F3k45KWczz8u8FFTGqw34CQttCNIXhud/S83 S/3iQoQDttiW67MKpHH20ZicBRgYIg4VXPAS8lO55tT+9+LxY6ePmCaeLwCfCvg1F3taG nz9HLg7okKCtkCfbkVKqYVMWv/Boy5z3BNejihkh0/R7AMsU/PeOOIByPelVfQrhjUm7F VSwNxKym7GUnJjJ54ioRC/V2HC2VaGH0D9jmvmkhovz4qDjrnBWG3tftegWB8ErhgyJI+ g4EyJYCRpNaMqK9/uketgHcZ1hUXz3kA8EopM4ihmhrGBC/V/8MVZ/X7FNEnXAE70iQ== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20260707 header.b=R6xZiC0I; arc=none smtp.remote-ip=209.85.222.46 Received: from mail-ua1-f46.google.com (mail-ua1-f46.google.com [209.85.222.46]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 57A9C60A2626 for ; Wed, 11 Nov 2026 20:37:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 57A9C60A2626 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20260707 header.b=R6xZiC0I Received: by mail-ua1-f46.google.com with SMTP id a1e0cc1a2514c-998749fe872so1718540241.0 for ; Wed, 11 Nov 2026 12:37:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794429477; x=1795034277; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=gnErk2hoIj8sp0I2N1pPn4DjMDV/O+wPgLT9tM5Mzec=; b=R6xZiC0IHIvjp3wbF6JOfUbbTxFtCZbkdi21wNmlbL6oZIC+pjgUHFdt33FxrEWdHp NMxCkwFa5nGVgU6aj+MVjJ7H1Pl66whFFLc9WT6Wf9uY21ECPrFS/sk4GpB3iaN4Fp3W 6eIw6zHCVFxTymonUwsj7StFNT6Qq/TfUP/tYUZUFPL0NlEa7S7EQRcuwq/yCCxvOuH4 3uSK6m/RU/H7NM5uBO45OL/5RA7jPl9M3sas1cfZNGwwDwB60UVgATuwdVWfjbIU3jJD 6kxCU5Q5f9EY9X18ojOiWUvxlCkbjw1L8xWKBdmnl40AWkMQ0tcgLgyWakF9vTs3asBV MWWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794429477; x=1795034277; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=gnErk2hoIj8sp0I2N1pPn4DjMDV/O+wPgLT9tM5Mzec=; b=KL7kbH99RkS64TQDkvbGQfYr+9SqPE64oPSqdTol1RLSSU+UmhyX/qGuTbfjM5b0Ak g30hqn3MTbLzQGNKFD2bGgemyHADLFVv+Rhz6yT6PgRGhg4jRiLqjnVFcXI8Lzec9Kyl b1/35H/YPxJL6kDjHw0hK1+CIVZzJbOndfHixf2qFByg1ldnx77KEunaY8k/wZ35qGum YjQQ0BJNFzkyqqvcbRZTl5p4eG0Qt1fr/XSCTf6vTyXDwRm/Qvq2sOhdG9ZBY5FJOZLC uEdzVHyTFoQAHjCWhQNFpHVPx3X1+cMIDnq2O4gOa8KLPEhgaZlV5G4mhOyuDqOgcjDR hULQ== X-Gm-Message-State: APuU4Z+b+IOlqh7KCpqFBgQ1FbEU29lo31YoI91LRddcZ7ux26yLLD+y BZEYEPfzpnNpDNmfWHbjZ0oencGPQxpsGhgnNmsHsAIwkdSGmoXLNXXYtfr7WA== X-Gm-Gg: AYBFou03Y4A0UfO3xByY3+v4m+qcHSl1R68wA32AgCtwI9fSVi+Lmyd8A24o5q7B5uJ rERmV5fUl3Xb7fRVJCiodTIMLgbcED9q0DD1+FgiJMxcPKfkVeQ4rk9TNHRlMCR4Mu6EWU1eCd/ 8pqu82HVx7wVeyp2KyUR2rmuWD6E9/iZ4FL+8pm6Ajl9PPlk1Owqr1B+GkTbjX2uLkzfD37vHp9 BBnwrMT+hEvxWU3tGGvxChmF1yVsoYrwMhAtmDncP4hpENxNDpVFfbGP+nDE5EpQGMqzM7bqx4c UCYdm+4ESfkVqP0q0DOywvtOLkYCHaf8sjG/oyd+qR6bSO6E5t0AC3f6MCtVNnSkKrqPlnmUHLr 5HzV6zvR7DtrVSctEy3L4aiECs1Zt6MQl6XOXoP0JpgfDKkpSktB6laEjX/6I4OecKcSeERgf/T Hy3VYHbDNone+4vdWrHIryFU7xuP1JWB6qV0sWyDOkrA8lA4UK+5yjInPhU2/+q4SkK2BeTeWrw KgQrPhhICkM7wwGQoks78u3W4ztroaKSa59OxQE6+x1JF+TOymicc1SK4VWeruvm/UjlAjl0LbM yY1tv/KOVr+dxcZw6/F0FJVZuTsDx9umpQwJQusujJ3NdUQnkSD0a51LBV84t/vQAiNWvXaXzQP W5l98+tOaX9gqrNt0X+GsIJUiAWGvaNF/CZgRBJ3GNO1TKvZRIgdz5AduwkMhyVQ6yK3LdDOGT+ yrDuA= X-Received: by 2002:a67:e7c6:0:b0:7b2:f3ff:6b34 with SMTP id ada2fe7eead31-7d4eed5b7damr1666305137.1.1794429477332; Wed, 11 Nov 2026 12:37:57 -0800 (PST) Received: from lvondent-mobl5.taila91cb8.ts.net ([72.188.211.115]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-7d302359221sm4762571137.6.2026.11.11.12.37.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Nov 2026 12:37:56 -0800 (PST) From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ v3 0/8] transport: Hand the owner over to a link still streaming Date: Wed, 11 Nov 2026 15:37:34 -0500 Message-ID: X-Mailer: git-send-email 2.56.0 In-Reply-To: References: X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID: <20261111203734.bz7DvNphUvxqqsZUIz5RQCQMHJPaoxRrnQ9B0NrsKNk@z> From: Luiz Augusto von Dentz When one ASE of a shared CIS is disabled alone, e.g. a microphone closed while media keeps playing, the transport leaving streaming took the owner, and so the state, of its linked transport with it: the audio server stopped the stream of the other ASE while it kept receiving data. Hand the owner over to a link still streaming instead (not while the transport is being released or has a pending request), and clear the owner of desynchronized links when removing it, which fixes a use-after-free at teardown. A unit test and functional tests cover it. This series applies on top of "shared/bap: Don't disconnect a CIS still used by another ASE" (1-cis-switch), as the unit test reuses the test helpers added there. v2: Start the multiline comment of patch 3 on the line after /*. Rebased on v2 of the first series. v3: Start the multiline comment of patch 1 on the line after /*, and rebase on v3 of the first series. v2: Start the multiline comment of patch 3 on the line after /*. Kannan J (2): transport: Hand the owner over to a link still streaming unit/test-bap: Add test for disabling one ASE of a shared CIS Luiz Augusto von Dentz (6): transport: Clear the owner of desynchronized links when removing it transport: Don't hand the owner over while releasing doc/functional-bap: Document disabling one ASE of a shared owner test: functional: Cover disabling one ASE of a shared owner doc/functional-bap: Document releasing a shared owner test: functional: Cover releasing a shared owner doc/functional-bap.rst | 58 ++++++++++++++++++++++++ profiles/audio/transport.c | 64 ++++++++++++++++++++++++-- test/functional/test_bap.py | 66 +++++++++++++++++++++++++++ unit/test-bap.c | 90 +++++++++++++++++++++++++++++++++++++ 4 files changed, 275 insertions(+), 3 deletions(-) -- 2.56.0