diff for duplicates of <cover.1794349049.git.luiz.von.dentz@intel.com> diff --git a/a/1.txt b/N1/1.txt index f1053e3..f68be69 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,28 +1,40 @@ 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. - -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. + +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 + +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 | 62 +++++++++++++++++++++++-- + test/functional/test_bap.py | 66 +++++++++++++++++++++++++++ + unit/test-bap.c | 90 +++++++++++++++++++++++++++++++++++++ + 4 files changed, 273 insertions(+), 3 deletions(-) -- 2.56.0 diff --git a/a/content_digest b/N1/content_digest index 93f2a3d..677f7cc 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,36 +1,49 @@ + "ref\0cover.1794348982.git.luiz.von.dentz@intel.com\0" "From\0Luiz Augusto von Dentz <luiz.dentz@gmail.com>\0" - "Subject\0[PATCH BlueZ v1 0/4] shared/bap: Don't disconnect a CIS still used by another ASE\0" - "Date\0Tue, 10 Nov 2026 17:18:58 -0500\0" + "Subject\0[PATCH BlueZ v1 0/8] transport: Hand the owner over to a link still streaming\0" + "Date\0Tue, 10 Nov 2026 17:19:09 -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" - "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" + "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" + "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 | 62 +++++++++++++++++++++++--\n" + " test/functional/test_bap.py | 66 +++++++++++++++++++++++++++\n" + " unit/test-bap.c | 90 +++++++++++++++++++++++++++++++++++++\n" + " 4 files changed, 273 insertions(+), 3 deletions(-)\n" "\n" "-- \n" 2.56.0 -0dd8b37d950ed4e1a6dc50314e8e2836640ba1a7180568814bfc25d021f49ac6 +57fa3834239a74653f2ac2c6eed62d4d199e557aa38ed2ea637baac83a4dd360
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox