Details
[Home]
Issue of the Implementation # L0192
Brief
sound/oss: deadlock in sequencer_ioctl(SNDCTL_SEQ_OUTOFBAND)
Detailed Description
A deadlock can be initiated by userspace via ioctl(SNDCTL_SEQ_OUTOFBAND) on /dev/sequencer with TMR_ECHO midi event. In this case the control flow is:
sound_ioctl() -> case SND_DEV_SEQ: case SND_DEV_SEQ2: sequencer_ioctl() -> case SNDCTL_SEQ_OUTOFBAND: spin_lock_irqsave(&lock,flags); play_event(); -> case EV_TIMING: seq_timing_event() -> case TMR_ECHO: seq_copy_to_input() -> spin_lock_irqsave(&lock,flags);It seems that spin_lock_irqsave() around play_event() is not necessary, because the only other call location in seq_startplay() makes the call without acquiring spinlock.
Component
linux-kernel 4.0
Accepted
https://marc.info/?l=linux-kernel&m=142931483001579&w=2
commit
Status
Fixed in kernel 4.1-rc1
[Home]
»