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

Reply via email to