diff options
author | Takashi Iwai <tiwai@suse.de> | 2014-10-13 23:18:02 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-10-30 09:40:17 -0700 |
commit | 2ecccbd09ee7f4ed1e83b7391b8512137f2b7964 (patch) | |
tree | e3ba1b8e0d04e309aa2f7bd6cde8ff6ed56188e5 /arch/microblaze/kernel | |
parent | 9876302e387981b02dddd2c0a0171cf943de99e1 (diff) |
ALSA: emu10k1: Fix deadlock in synth voice lookup
commit 95926035b187cc9fee6fb61385b7da9c28123f74 upstream.
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>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/microblaze/kernel')
0 files changed, 0 insertions, 0 deletions