1. 23 Feb, 2011 7 commits
    • Adrian Knoth's avatar
      ALSA: hdspm - prevent reading unitialized stack memory · 4ab69a2b
      Adrian Knoth authored
      Original patch by Dan Rosenberg <drosenberg@vsecurity.com> under commit
      e68d3b31. I'm copying his text here:
      
      The SNDRV_HDSPM_IOCTL_GET_CONFIG_INFO ioctl in hdspm.c allow unprivileged
      users to read uninitialized kernel stack memory, because several fields
      of the hdspm_config struct declared on the stack are not altered
      or zeroed before being copied back to the user.  This patch takes care
      of it.
      Signed-off-by: default avatarAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      4ab69a2b
    • Adrian Knoth's avatar
      ALSA: hdspm - fix sync check on AES32 · 7c4a95b5
      Adrian Knoth authored
      Fredrik Lingvall <fredrik.lingvall@gmail.com> has discovered wrong
      frequency and sync detection on AES32. According to him, the provided
      patch fixes these issues.
      Signed-off-by: default avatarAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7c4a95b5
    • Adrian Knoth's avatar
      ALSA: hdspm - Remove input selector on MADIface · f6ea805f
      Adrian Knoth authored
      In contrast to the RME MADI card, coax/optical selection on the MADIface
      is done via a physical switch located at the breakout box. Obviously,
      the driver cannot switch ports in software.
      Signed-off-by: default avatarAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      f6ea805f
    • Adrian Knoth's avatar
      ALSA: hdspm - Fix DS/QS output channel mappings on RME MADI/MADIface · 01e96078
      Adrian Knoth authored
      Caused by two typos, no output channel mappings were assigned for
      MADI/MADIface at double/quad speed.
      
      The channel mapping is indeed identical to the single speed mapping, the
      cards will simply use the first N channels.
      Signed-off-by: default avatarFlorian Faber <faber@faberman.de>
      Signed-off-by: default avatarFredrik Lingvall <fredrik.lingvall@gmail.com>
      Signed-off-by: default avatarAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      01e96078
    • Adrian Knoth's avatar
      ALSA: hdspm - Restrict channel count on RME AES/AES32 · 88fabbfc
      Adrian Knoth authored
      Without calling an appropriate rule, AES/AES32 cards would announce a
      theoretical channel count of 64 (HDSPM_MAX_CHANNELS), leading to the
      already known bug:
      
      [37422.640481] ------------[ cut here ]------------
      [37422.640487] WARNING: at sound/pci/rme9652/hdspm.c:5449
      snd_hdspm_ioctl+0x18f/0x202 [snd_hdspm]()
      [37422.640489] Hardware name: PRIMERGY RX100 S6
      [37422.640490] BUG? (info->channel >= hdspm->max_channels_in)
      [37422.640492] Modules linked in: snd_hdspm snd_seq_midi ipmi_watchdog
      ipmi_poweroff ipmi_si ipmi_devintf ipmi_msghandler i2c_i801 e1000e
      snd_rawmidi power_meter [last unloaded: snd_hdspm]
      [37422.640501] Pid: 22231, comm: jackd Tainted: G      D W
      2.6.36-gentoo-r5 #5
      [37422.640502] Call Trace:
      [37422.640508]  [<ffffffff8103db3a>] warn_slowpath_common+0x80/0x98
      [37422.640511]  [<ffffffff8103dbe6>] warn_slowpath_fmt+0x41/0x43
      [37422.640514]  [<ffffffff81034306>] ? get_parent_ip+0x11/0x42
      [37422.640518]  [<ffffffffa0055763>] snd_hdspm_ioctl+0x18f/0x202
      [snd_hdspm]
      [37422.640522]  [<ffffffff813fd626>] snd_pcm_channel_info+0x73/0x7c
      [37422.640525]  [<ffffffff814001e9>] snd_pcm_common_ioctl1+0x326/0xb01
      [37422.640527]  [<ffffffff81034306>] ? get_parent_ip+0x11/0x42
      [37422.640531]  [<ffffffff8105be6c>] ? __srcu_read_unlock+0x3b/0x59
      [37422.640533]  [<ffffffff81400bce>] snd_pcm_capture_ioctl1+0x20a/0x227
      [37422.640537]  [<ffffffff811e599c>] ? file_has_perm+0x90/0x9e
      [37422.640540]  [<ffffffff81400c15>] snd_pcm_capture_ioctl+0x2a/0x2e
      [37422.640543]  [<ffffffff810f2c69>] do_vfs_ioctl+0x404/0x453
      [37422.640546]  [<ffffffff810f2d09>] sys_ioctl+0x51/0x74
      [37422.640549]  [<ffffffff81002aab>] system_call_fastpath+0x16/0x1b
      [37422.640552] ---[ end trace 0cd919cd68118082 ]---
      
      We already have all the right values in place, we simply have to inform
      the upper layers about this restriction.
      
      Note that snd_hdspm_hw_rule_rate_out_channels and
      snd_hdspm_hw_rule_rate_in_channels must not be called on AES32, because
      the channel count is always 16, no matter of the samplerate in use.
      Signed-off-by: default avatarAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      88fabbfc
    • Adrian Knoth's avatar
      ALSA: hdspm - Fix buffer handling on RME MADI/MADIface/AES(32) · 483cee77
      Adrian Knoth authored
      Only RayDAT and AIO provide sane buffer pointers that can be used with
      HDSPM_BufferPositionMask, on all other cards, this would result in a
      wrong HW pointer leading to xruns and these messages:
      
      [260808.916788] BUG: pcmC0D0p:0, pos = 2976, buffer size = 1024, period size = 512
      [260808.961124] BUG: pcmC0D0c:0, pos = 4944, buffer size = 1024, period size = 512
      Signed-off-by: default avatarAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      483cee77
    • Adrian Knoth's avatar
      ALSA: hpdsm - RME AES(32): Fix missing channel mappings · 432d2500
      Adrian Knoth authored
      On RME AES and AES(32), none of the required information
      (max_channels_in, max_channels_out, channel mappings, port names) was
      set, leading to the BUG below.
      
      This patch adds the missing bits, thus fixing the bug.
      
      125.058768] ------------[ cut here ]------------
      [  125.058773] WARNING: at sound/pci/rme9652/hdspm.c:5389
      snd_hdspm_ioctl+0x10c/0x1d8 [snd_hdspm]()
      [  125.058775] Hardware name: PRIMERGY RX100 S6
      [  125.058777] BUG? (info->channel >= hdspm->max_channels_out)
      [  125.058778] Modules linked in: ipmi_watchdog ipmi_poweroff ipmi_si
      ipmi_devintf ipmi_msghandler snd_hdspm power_meter e1000e snd_rawmidi
      i2c_i801
      [  125.058787] Pid: 3652, comm: audacity Tainted: G        W
      2.6.36-gentoo-r5 #5
      [  125.058788] Call Trace:
      [  125.058792]  [<ffffffff8103db3a>] warn_slowpath_common+0x80/0x98
      [  125.058796]  [<ffffffff8103dbe6>] warn_slowpath_fmt+0x41/0x43
      [  125.058800]  [<ffffffffa006761a>] snd_hdspm_ioctl+0x10c/0x1d8
      [snd_hdspm]
      [  125.058803]  [<ffffffff813fd626>] snd_pcm_channel_info+0x73/0x7c
      [  125.058806]  [<ffffffff814001e9>] snd_pcm_common_ioctl1+0x326/0xb01
      [  125.058809]  [<ffffffff810c604c>] ? __do_fault+0x361/0x3a6
      [  125.058812]  [<ffffffff81400e23>] snd_pcm_playback_ioctl1+0x20a/0x227
      [  125.058815]  [<ffffffff811e599c>] ? file_has_perm+0x90/0x9e
      [  125.058818]  [<ffffffff81400e6a>] snd_pcm_playback_ioctl+0x2a/0x2e
      [  125.058821]  [<ffffffff810f2c69>] do_vfs_ioctl+0x404/0x453
      [  125.058824]  [<ffffffff810f2d09>] sys_ioctl+0x51/0x74
      [  125.058827]  [<ffffffff81002aab>] system_call_fastpath+0x16/0x1b
      [  125.058830] ---[ end trace 5bddb08e5d4cbeb1 ]---
      Signed-off-by: default avatarAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: default avatarFlorian Faber <faber@faberman.de>
      Signed-off-by: default avatarFredrik Lingvall <fredrik.lingvall@gmail.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      432d2500
  2. 20 Feb, 2011 1 commit
  3. 19 Feb, 2011 2 commits
  4. 17 Feb, 2011 1 commit
  5. 14 Feb, 2011 4 commits
  6. 10 Feb, 2011 25 commits