1. 13 Oct, 2011 2 commits
  2. 10 Oct, 2011 1 commit
  3. 09 Oct, 2011 1 commit
  4. 04 Oct, 2011 2 commits
    • Dan Carpenter's avatar
      ALSA: oss-mixer - use strlcpy() instead strcpy() · f92766bc
      Dan Carpenter authored
      This is mostly a static checker fix more than anything else.  We're
      copying from a 64 char buffer into a 44 char buffer.
      
      The 64 character buffer is str[] in snd_mixer_oss_build_test_all().
      The call tree is:
      	snd_mixer_oss_build_test_all()
      	-> snd_mixer_oss_build_test()
      	   -> snd_mixer_oss_build_test().
      
      We never actually do fill str[] buffer all the way to 64 characters.
      The longest string is:
      	sprintf(str, "%s Playback Switch", ptr->name);
      ptr->name is a 32 character buffer so 32 plus 16 characters for
      " Playback Switch" still puts us over the 44 limit from "id.name".
      
      Most likely ptr->name never gets filled to the limit, but we can't
      really change the size of that buffer so lets just use strlcpy() here
      and be safe.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      f92766bc
    • Stefan Richter's avatar
      ALSA: firewire-speakers: fix locking · a0978e80
      Stefan Richter authored
      There is a lock inversion between fwspk->mutex and pcm->open_mutex
      reported by lockdep when fwspk_hw_free is called.
      
      Fixed by copying the fix from the same former issue in the isight
      sound driver (commit f3f7c183
      "ALSA: isight: fix locking").
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      a0978e80
  5. 29 Sep, 2011 1 commit
  6. 27 Sep, 2011 1 commit
  7. 24 Sep, 2011 1 commit
  8. 23 Sep, 2011 4 commits
  9. 22 Sep, 2011 3 commits
  10. 20 Sep, 2011 6 commits
  11. 19 Sep, 2011 1 commit
  12. 16 Sep, 2011 2 commits
  13. 15 Sep, 2011 1 commit
    • Arjan van de Ven's avatar
      ALSA: pcm - fix race condition in wait_for_avail() · 763437a9
      Arjan van de Ven authored
      wait_for_avail() in pcm_lib.c has a race in it (observed in practice by an
      Intel validation group).
      
      The function is supposed to return once space in the buffer has become
      available, or if some timeout happens.  The entity that creates space (irq
      handler of sound driver and some such) will do a wake up on a waitqueue
      that this function registers for.
      
      However there are two races in the existing code
      
      1) If space became available between the caller noticing there was no
         space and this function actually sleeping, the wakeup is missed and the
         timeout condition will happen instead
      
      2) If a wakeup happened but not sufficient space became available, the
         code will loop again and wait for more space.  However, if the second
         wake comes in prior to hitting the schedule_timeout_interruptible(), it
         will be missed, and potentially you'll wait out until the timeout
         happens.
      
      The fix consists of using more careful setting of the current state (so
      that if a wakeup happens in the main loop window, the schedule_timeout()
      falls through) and by checking for available space prior to going into the
      schedule_timeout() loop, but after being on the waitqueue and having the
      state set to interruptible.
      
      [tiwai: the following changes have been added to Arjan's original patch:
       - merged akpm's fix for waitqueue adding order into a single patch
       - reduction of duplicated code of avail check
      ]
      Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      763437a9
  14. 14 Sep, 2011 7 commits
  15. 13 Sep, 2011 1 commit
  16. 12 Sep, 2011 5 commits
  17. 06 Sep, 2011 1 commit