diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-09-25 16:51:03 +0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-09-25 16:51:03 +0400 |
commit | 399ccdc1cd4e92e541d4dacbbf18c52bd693418b (patch) | |
tree | 4e9ecc896adb79397166c02bdd4cedd690a54a98 /sound/ac97_bus.c | |
parent | b0b8daf7849cc98217ca018fbe82c61cd2b735bc (diff) | |
download | linux-399ccdc1cd4e92e541d4dacbbf18c52bd693418b.tar.xz |
ALSA: fix locking in snd_pcm_open*() and snd_rawmidi_open*()
The PCM and rawmidi open callbacks have a lock against card->controls_list
but it takes a wrong one, card->controls_rwsem, instead of a right one
card->ctl_files_rwlock. This patch fixes them.
This change also fixes automatically the potential deadlocks due to
mm->mmap_sem in munmap and copy_from/to_user, reported by Sitsofe
Wheeler:
A: snd_ctl_elem_user_tlv(): card->controls_rwsem => mm->mmap_sem
B: snd_pcm_open(): card->open_mutex => card->controls_rwsem
C: munmap: mm->mmap_sem => snd_pcm_release(): card->open_mutex
The patch breaks the chain.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/ac97_bus.c')
0 files changed, 0 insertions, 0 deletions