diff for duplicates of <cover.1794414122.git.luiz.von.dentz@intel.com> diff --git a/a/1.txt b/N1/1.txt index d1d2e30..641c1f3 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,31 +1,39 @@ From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> -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. - -Luiz Augusto von Dentz (4): - shared/bap: Don't disconnect a CIS still configured for a link - 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 | 37 ++++++ - src/shared/bap.c | 84 +++++++++---- - test/functional/test_bap.py | 68 +++++++++++ - unit/test-bap.c | 227 ++++++++++++++++++++++++++++++++++++ - 4 files changed, 391 insertions(+), 25 deletions(-) +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. + +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 | 63 ++++++++++++++++++++++++-- + test/functional/test_bap.py | 66 +++++++++++++++++++++++++++ + unit/test-bap.c | 90 +++++++++++++++++++++++++++++++++++++ + 4 files changed, 274 insertions(+), 3 deletions(-) -- 2.56.0 diff --git a/a/content_digest b/N1/content_digest index cea1a49..a7fcd12 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,39 +1,48 @@ + "ref\0cover.1794413813.git.luiz.von.dentz@intel.com\0" "From\0Luiz Augusto von Dentz <luiz.dentz@gmail.com>\0" - "Subject\0[PATCH BlueZ v2 0/4] shared/bap: Don't disconnect a CIS still used by another ASE\0" - "Date\0Wed, 11 Nov 2026 11:25:11 -0500\0" + "Subject\0[PATCH BlueZ v2 0/8] transport: Hand the owner over to a link still streaming\0" + "Date\0Wed, 11 Nov 2026 11:25:23 -0500\0" "To\0linux-bluetooth@vger.kernel.org\0" "\00:1\0" "b\0" "From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>\n" "\n" - "A remote initiator, e.g. a phone in a voice call, may enable the Source\n" - "ASE of a CIS shared with a Sink ASE and then switch to the Sink ASE\n" - "alone. The acceptor disconnected the CIS when the Source ASE detached\n" - "from it, although the linked Sink ASE was still configured for it, and\n" - "as the initiator does not request the CIS again, the Sink ASE was left\n" - "enabled without a CIS and the voice stayed silent.\n" - "\n" - "Keep the CIS while another ASE is still configured for it. Unit tests\n" - "cover releasing an ASE of a CIS kept by its link, of a shared CIS and\n" - "switching the direction, and a functional test counts the CIS the\n" - "acceptor is asked to accept.\n" - "\n" - "v2: Also tell the streams using the CIS of a linked stream when it is\n" - " lost, not only the ones that hold it themselves.\n" - "\n" - "Luiz Augusto von Dentz (4):\n" - " shared/bap: Don't disconnect a CIS still configured for a link\n" - " unit/test-bap: Add tests for a CIS shared by two ASEs\n" - " doc/functional-bap: Document switching the direction of a CIS\n" - " test: functional: Cover switching the direction of a CIS\n" - "\n" - " doc/functional-bap.rst | 37 ++++++\n" - " src/shared/bap.c | 84 +++++++++----\n" - " test/functional/test_bap.py | 68 +++++++++++\n" - " unit/test-bap.c | 227 ++++++++++++++++++++++++++++++++++++\n" - " 4 files changed, 391 insertions(+), 25 deletions(-)\n" + "When one ASE of a shared CIS is disabled alone, e.g. a microphone closed\n" + "while media keeps playing, the transport leaving streaming took the\n" + "owner, and so the state, of its linked transport with it: the audio\n" + "server stopped the stream of the other ASE while it kept receiving data.\n" + "\n" + "Hand the owner over to a link still streaming instead (not while the\n" + "transport is being released or has a pending request), and clear the\n" + "owner of desynchronized links when removing it, which fixes a\n" + "use-after-free at teardown. A unit test and functional tests cover it.\n" + "\n" + "This series applies on top of \"shared/bap: Don't disconnect a CIS still\n" + "used by another ASE\" (1-cis-switch), as the unit test reuses the test\n" + "helpers added there.\n" + "\n" + "v2: Start the multiline comment of patch 3 on the line after /*. Rebased\n" + " on v2 of the first series.\n" + "\n" + "Kannan J (2):\n" + " transport: Hand the owner over to a link still streaming\n" + " unit/test-bap: Add test for disabling one ASE of a shared CIS\n" + "\n" + "Luiz Augusto von Dentz (6):\n" + " transport: Clear the owner of desynchronized links when removing it\n" + " transport: Don't hand the owner over while releasing\n" + " doc/functional-bap: Document disabling one ASE of a shared owner\n" + " test: functional: Cover disabling one ASE of a shared owner\n" + " doc/functional-bap: Document releasing a shared owner\n" + " test: functional: Cover releasing a shared owner\n" + "\n" + " doc/functional-bap.rst | 58 ++++++++++++++++++++++++\n" + " profiles/audio/transport.c | 63 ++++++++++++++++++++++++--\n" + " test/functional/test_bap.py | 66 +++++++++++++++++++++++++++\n" + " unit/test-bap.c | 90 +++++++++++++++++++++++++++++++++++++\n" + " 4 files changed, 274 insertions(+), 3 deletions(-)\n" "\n" "-- \n" 2.56.0 -4379027821530c8cb9561a557a57f17c713667cfb1ddfa83a448466fb90e8632 +8a8451bca237039c7b21d5202869836413b27d37c06713c2680ed9a36349ba58
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox