android_kernel_samsung_msm8976/sound/core/oss
Takashi Iwai aae80d6591 ALSA: pcm: Fix potential deadlock in OSS emulation
commit b248371628aad599a48540962f6b85a21a8a0c3f upstream.

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>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-02-19 14:22:39 -08:00
..
Makefile
copy.c
io.c
linear.c ALSA: core: remove unused variables. 2011-05-26 08:19:04 +02:00
mixer_oss.c ALSA: Fix card refcount unbalance 2012-11-08 14:36:18 +01:00
mulaw.c ALSA: core: sparse cleanups 2011-02-14 17:10:11 +01:00
pcm_oss.c ALSA: pcm: Fix potential deadlock in OSS emulation 2016-02-19 14:22:39 -08:00
pcm_plugin.c ALSA: core: fix NULL checking in snd_pcm_plug_slave_size() 2012-11-14 08:03:31 +01:00
pcm_plugin.h ALSA: core: sparse cleanups 2011-02-14 17:10:11 +01:00
rate.c
route.c ALSA: core: sparse cleanups 2011-02-14 17:10:11 +01:00