CVSROOT: /cvs Module name: src Changes by: ratc...@cvs.openbsd.org 2021/10/30 06:26:26
Modified files: sys/dev : midi.c midivar.h Log message: Defer selwakeup() calls to a softintr selwakeup() needs to be protected by KERNEL_LOCK, but we're not allowed to grab KERNEL_LOCK on interrupt context because midi runs at IPL_AUDIO with the audio_lock held. Furthermore, doing so is a locking order bug: syscall code-path grabs KERNEL_LOCK first while interrupt code-path does the opposite when calling selwakeup(). ok visa