CVSROOT: /cvs Module name: src Changes by: [email protected] 2020/02/13 14:00:48
Modified files:
sys/dev : audio.c
Log message:
Fix missing locking during calls to selwakeup().
selwakeup() was called in the interrupt handler, i.e. with the
audio_lock held. We can't just grab the KERNEL_LOCK needed by
selwakeup(), because locks would be taken in the wrong order. Solve
this by defering selwakeup() calls to a softintr, called with the
KERNEL_LOCK held.
Mostly from mpi@, ok mpi@.
