1. 30 3月, 2013 1 次提交
  2. 27 3月, 2013 1 次提交
  3. 22 3月, 2013 1 次提交
    • T
      ALSA: hda - Fix DAC assignment for independent HP · 55a63d4d
      Takashi Iwai 提交于
      The generic parser should evaluate the availability of the independent
      HP when specified.  Otherwise a DAC without the direct connection to
      the corresponding pin may be assigned for the HP, but the driver
      doesn't check it at all.  The problem was actually seen on some
      machines with VT1708s or equivalent codec, where DAC0 is assigned to
      HP although it can be connected only via aamix.
      
      This patch adds the badness evaluation for the independent HP to make
      it working properly.
      Reported-by: NLydia Wang <LydiaWang@viatech.com.cn>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      55a63d4d
  4. 21 3月, 2013 1 次提交
    • T
      ALSA: hda - Fix abuse of snd_hda_lock_devices() for DSP loader · eb49faa6
      Takashi Iwai 提交于
      The current DSP loader code abuses snd_hda_lock_devices() for ensuring
      the DSP loader not conflicting with the other normal operations.  But
      this trick obviously doesn't work for the PM resume since the streams
      are kept opened there where snd_hda_lock_devices() returns -EBUSY.
      That means we need another lock mechanism instead of abuse.
      
      This patch provides the new lock state to azx_dev.  Theoretically it's
      possible that the DSP loader conflicts with the stream that has been
      already assigned for another PCM.  If it's running, the DSP loader
      should simply fail.  If not -- it's the case for PM resume --, we
      should assign this stream temporarily to the DSP loader, and take it
      back to the PCM after finishing DSP loading.  If the PCM is operated
      during the DSP loading, it should get an error, too.
      Reported-and-tested-by: NDylan Reid <dgreid@chromium.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      eb49faa6
  5. 20 3月, 2013 4 次提交
  6. 18 3月, 2013 3 次提交
  7. 15 3月, 2013 5 次提交
  8. 14 3月, 2013 1 次提交
  9. 12 3月, 2013 3 次提交
  10. 11 3月, 2013 1 次提交
    • T
      ALSA: seq: Fix missing error handling in snd_seq_timer_open() · 66efdc71
      Takashi Iwai 提交于
      snd_seq_timer_open() didn't catch the whole error path but let through
      if the timer id is a slave.  This may lead to Oops by accessing the
      uninitialized pointer.
      
       BUG: unable to handle kernel NULL pointer dereference at 00000000000002ae
       IP: [<ffffffff819b3477>] snd_seq_timer_open+0xe7/0x130
       PGD 785cd067 PUD 76964067 PMD 0
       Oops: 0002 [#4] SMP
       CPU 0
       Pid: 4288, comm: trinity-child7 Tainted: G      D W 3.9.0-rc1+ #100 Bochs Bochs
       RIP: 0010:[<ffffffff819b3477>]  [<ffffffff819b3477>] snd_seq_timer_open+0xe7/0x130
       RSP: 0018:ffff88006ece7d38  EFLAGS: 00010246
       RAX: 0000000000000286 RBX: ffff88007851b400 RCX: 0000000000000000
       RDX: 000000000000ffff RSI: ffff88006ece7d58 RDI: ffff88006ece7d38
       RBP: ffff88006ece7d98 R08: 000000000000000a R09: 000000000000fffe
       R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
       R13: ffff8800792c5400 R14: 0000000000e8f000 R15: 0000000000000007
       FS:  00007f7aaa650700(0000) GS:ffff88007f800000(0000) GS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: 00000000000002ae CR3: 000000006efec000 CR4: 00000000000006f0
       DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
       DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
       Process trinity-child7 (pid: 4288, threadinfo ffff88006ece6000, task ffff880076a8a290)
       Stack:
        0000000000000286 ffffffff828f2be0 ffff88006ece7d58 ffffffff810f354d
        65636e6575716573 2065756575712072 ffff8800792c0030 0000000000000000
        ffff88006ece7d98 ffff8800792c5400 ffff88007851b400 ffff8800792c5520
       Call Trace:
        [<ffffffff810f354d>] ? trace_hardirqs_on+0xd/0x10
        [<ffffffff819b17e9>] snd_seq_queue_timer_open+0x29/0x70
        [<ffffffff819ae01a>] snd_seq_ioctl_set_queue_timer+0xda/0x120
        [<ffffffff819acb9b>] snd_seq_do_ioctl+0x9b/0xd0
        [<ffffffff819acbe0>] snd_seq_ioctl+0x10/0x20
        [<ffffffff811b9542>] do_vfs_ioctl+0x522/0x570
        [<ffffffff8130a4b3>] ? file_has_perm+0x83/0xa0
        [<ffffffff810f354d>] ? trace_hardirqs_on+0xd/0x10
        [<ffffffff811b95ed>] sys_ioctl+0x5d/0xa0
        [<ffffffff813663fe>] ? trace_hardirqs_on_thunk+0x3a/0x3f
        [<ffffffff81faed69>] system_call_fastpath+0x16/0x1b
      Reported-and-tested-by: NTommi Rantala <tt.rantala@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      66efdc71
  11. 07 3月, 2013 5 次提交
  12. 06 3月, 2013 1 次提交
  13. 05 3月, 2013 2 次提交
  14. 04 3月, 2013 1 次提交
    • D
      ALSA: seq: seq_oss_event: missing range checks · 85c50a58
      Dan Carpenter 提交于
      The "dev" variable could be out of bounds.  Calling
      snd_seq_oss_synth_is_valid() checks that it is is a valid device
      which has been opened.  We check this inside set_note_event() so
      this function can't succeed without a valid "dev".  But we need to
      do the check earlier to prevent invalid dereferences and memory
      corruption.
      
      One call tree where "dev" could be out of bounds is:
      -> snd_seq_oss_oob_user()
         -> snd_seq_oss_process_event()
            -> extended_event()
               -> note_on_event()
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      85c50a58
  15. 03 3月, 2013 1 次提交
  16. 01 3月, 2013 4 次提交
  17. 25 2月, 2013 5 次提交