This cumulative v22 update adds an optional linked-prepare completion hook and validates playback ACK accounting before indirect transfer.
The core hook runs after all linked prepare actions and post-actions succeed. If an action fails, callbacks cover only the attempted prefix; the core moves opted-in members in that prefix to SETUP before calling back. Pre-action failures and standalone RESET do not invoke the hook. Drivers that leave it unset retain existing prepare-failure behavior. Virtio uses the hook to keep ACK admission closed through the core pointer reset. Patch 5 also returns -EBADFD for an ACK on an already XRUN member, avoiding a second linked-group XRUN request. Playback ACK validates normalized boundary deltas, frame-to-byte geometry, ring indices, signed ready counters, and total queued bytes before the indirect transfer helper mutates its cursor. An invalid paused ACK returns -EBADFD without starting a linked XRUN. Validation: The exact-source ARM64 W=1/KASAN/LOCKDEP build passed; final-r4 snd-pcm and virtio_snd modules match the previous build, and Image executable sections and System.map match. The W=1 stage 04–13 build chain passed without warnings or errors. The v22-only checkpatch delta reported zero errors, warnings, or checks. The bounded playback ACK helper passed 23 candidate-only cases. The prepare-completion QEMU probe passed six lifecycle cases, including a later member's OPEN pre-action abort. Normal playback passed in QEMU with RW and MMAP, including prepare, fill, START, supported pause/resume, drain, drop, and reopen. Four ordinary/staged capture paths (RW/MMAP) passed with 14 oracle captures, including post-reset capture checks. The prepare-ordering diagnosis comes from static source inspection; no baseline runtime test was run. KCSAN and physical-device testing remain pending.
