CVSROOT: /cvs Module name: src Changes by: ratc...@cvs.openbsd.org 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@.