CVSROOT: /cvs
Module name: src
Changes by: [email protected] 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