Hi Takashi, Thanks for checking v4. I reproduced the application problem against sound.git for-next. The two dsnoop patches depended on nine patches from my earlier submissions that are still absent from that tree.
This version includes those dependencies in application order and applies directly to for-next at bcb4494239f57c98a8ef576566b03f2935b3000f. It needs no separately fetched prerequisite patches. Targeting 7.5 or later works for me; I have no deployment deadline for this work. There are no code changes from the previously submitted patches. Stable patch IDs match all nine prerequisites and both patches from v4. Patches 1-5 cover request lifetime and error recovery, 6 covers teardown waits, 7 adds opt-in staged capture and pause restart, 8-9 cover ACK accounting and period work, and 10-11 add the stop-policy annotations and dsnoop fix. The staging and pause-restart changes were previously posted as RFCs. Including them here makes the dependency chain directly applicable; I would still welcome review of their device-compatibility assumptions. Capture staging and the VZ compatibility options remain opt-in. This series does not add host audio support to Docker Desktop or enable any host microphone permission. The dsnoop fix recognizes stop_threshold == boundary as free-running capture while preserving bounded-reader overflow checks. Returning to bounded mode with a full unread ring reports an XRUN. Paused ACK and period-work errors arm synchronous cleanup so the first prepare can release queued RX requests and recover. This fixes behavior introduced by the staged-capture patches in this series. Previous v4: https://lore.kernel.org/all/[email protected]/ Your rebase request: https://lore.kernel.org/all/[email protected]/ Earlier submissions, now included rather than external prerequisites: https://lore.kernel.org/all/[email protected]/ https://lore.kernel.org/all/[email protected]/ https://lore.kernel.org/all/[email protected]/ https://lore.kernel.org/all/[email protected]/ I built a fresh ARM64 kernel and modules from this base with KASAN and lockdep enabled. All eleven patches passed sequential git apply and git am checks, and checkpatch reported no errors or warnings. On that kernel, all 16 paused-ACK recovery combinations passed across native pause and pause restart with one and two vCPUs. The first prepare recovered without a preceding drop. The native pause-release regression and all 13 mode/lifecycle cases also passed, including shared dsnoop readers, client drop, mode transitions and reopen. All six QEMU runs confirmed the expected module hashes and produced no KASAN or lockdep diagnostics. Earlier v4 validation covered 16 paused-ACK recovery combinations and the 13-case mode suite under ARM64 QEMU with KASAN and lockdep. Earlier MOTU/VZ and KCSAN results used the previous base; they are not new results for this revision. Physical microphone testing, 32-bit builds and forced RX/pause interleaving have not been rerun on this base. Thanks, Joonho --- base-commit: bcb4494239f57c98a8ef576566b03f2935b3000f
