linux/sound/pci/emu10k1
Takashi Iwai 95926035b1 ALSA: emu10k1: Fix deadlock in synth voice lookup
The emu10k1 voice allocator takes voice_lock spinlock.  When there is
no empty stream available, it tries to release a voice used by synth,
and calls get_synth_voice.  The callback function,
snd_emu10k1_synth_get_voice(), however, also takes the voice_lock,
thus it deadlocks.

The fix is simply removing the voice_lock holds in
snd_emu10k1_synth_get_voice(), as this is always called in the
spinlock context.

Reported-and-tested-by: Arthur Marsh <arthur.marsh@internode.on.net>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-10-14 09:18:02 +02:00
..
emu10k1_callback.c
emu10k1_main.c
emu10k1_patch.c
emu10k1_synth_local.h
emu10k1_synth.c
emu10k1.c
emu10k1x.c
emufx.c
emumixer.c
emumpu401.c
emupcm.c
emuproc.c
io.c
irq.c
Makefile
memory.c
p16v.c
p16v.h
p17v.h
timer.c
tina2.h
voice.c