mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
Q40PlayNextFrame() re-registers the sample IRQ after stopping it. This
function can be called with dmasound.lock held and from the sample IRQ
handler, so free_irq() and request_irq() can sleep or deadlock. A failed
re-registration can also leave playback without an IRQ.
Register one handler for the lifetime of the driver and select mono or
stereo sample handling inside that handler. Call the frame completion
path after releasing dmasound.lock so it can refill the queue safely.
Fixes:
|
||
|---|---|---|
| .. | ||
| dmasound | ||
| .gitignore | ||