diff options
author | Takashi Iwai <tiwai@suse.de> | 2016-01-31 10:32:37 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2016-02-01 12:23:29 +0100 |
commit | b248371628aad599a48540962f6b85a21a8a0c3f (patch) | |
tree | b53a2028b511afaa11cacf8eecbb09cd43aaa190 /mm/page_counter.c | |
parent | cc85f7a634cfaf9f0713c6aa06d08817424db37a (diff) | |
download | linux-b248371628aad599a48540962f6b85a21a8a0c3f.tar.bz2 |
ALSA: pcm: Fix potential deadlock in OSS emulation
There are potential deadlocks in PCM OSS emulation code while
accessing read/write and mmap concurrently. This comes from the
infamous mmap_sem usage in copy_from/to_user(). Namely,
snd_pcm_oss_write() ->
&runtime->oss.params_lock ->
copy_to_user() ->
&mm->mmap_sem
mmap() ->
&mm->mmap_sem ->
snd_pcm_oss_mmap() ->
&runtime->oss.params_lock
Since we can't avoid taking params_lock from mmap code path, use
trylock variant and aborts with -EAGAIN as a workaround of this AB/BA
deadlock.
BugLink: http://lkml.kernel.org/r/CACT4Y+bVrBKDG0G2_AcUgUQa+X91VKTeS4v+wN7BSHwHtqn3kQ@mail.gmail.com
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'mm/page_counter.c')
0 files changed, 0 insertions, 0 deletions