1. 23 9月, 2011 2 次提交
    • D
      ALSA: hdspm - cleanup __user tags in ioctl() · 2ca595ab
      Dan Carpenter 提交于
      This makes the code cleaner and silences a Sparse complaint:
      sound/pci/rme9652/hdspm.c:6341:23: warning: incorrect type in assignment (incompatible argument 4 (different address spaces))
      sound/pci/rme9652/hdspm.c:6341:23:    expected int ( *ioctl )( ... )
      sound/pci/rme9652/hdspm.c:6341:23:    got int ( static [toplevel] *<noident> )( ... )
      sound/pci/rme9652/hdspm.c:6102:44: warning: dereference of noderef expression
      sound/pci/rme9652/hdspm.c:6225:50: warning: dereference of noderef expression
      sound/pci/rme9652/hdspm.c:6264:50: warning: dereference of noderef expression
      sound/pci/rme9652/hdspm.c:6283:50: warning: dereference of noderef expression
      sound/pci/rme9652/hdspm.c:6289:59: warning: dereference of noderef expression
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      2ca595ab
    • D
      ALSA: hdspm - potential info leak in snd_hdspm_hwdep_ioctl() · 643d6bbb
      Dan Carpenter 提交于
      Smatch has a new check for Rosenberg type information leaks where
      structs are copied to the user with uninitialized stack data in them.
      
      The status struct has a hole in it, and on some paths not all the
      members were initialized.
      
      struct hdspm_status {
              unsigned char              card_type;            /*     0     1 */
              /* XXX 3 bytes hole, try to pack */
              enum hdspm_syncsource      autosync_source;      /*     4     4 */
              long long unsigned int     card_clock;           /*     8     8 */
      
      The hdspm_version struct had holes in it as well.
      
      struct hdspm_version {
              unsigned char              card_type;            /*     0     1 */
              char                       cardname[20];         /*     1    20 */
              /* XXX 3 bytes hole, try to pack */
              unsigned int               serial;               /*    24     4 */
              short unsigned int         firmware_rev;         /*    28     2 */
              /* XXX 2 bytes hole, try to pack */
              int                        addons;               /*    32     4 */
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      643d6bbb
  2. 15 8月, 2011 8 次提交
  3. 05 8月, 2011 1 次提交
  4. 29 7月, 2011 3 次提交
  5. 30 6月, 2011 1 次提交
    • T
      ALSA: hdspm - Fix compile warnings with PPC · 286bed0f
      Takashi Iwai 提交于
      The char can be unsigned on some architectures.  Since the code checks
      the negative values, they should be declared as signed char explicitly.
      
        sound/pci/rme9652/hdspm.c:5449: warning: comparison is always false due to limited range of data type
        sound/pci/rme9652/hdspm.c:5462: warning: comparison is always false due to limited range of data type
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      286bed0f
  6. 13 6月, 2011 3 次提交
  7. 10 6月, 2011 2 次提交
    • T
      ALSA: use KBUILD_MODNAME for request_irq argument in sound/pci/* · 934c2b6d
      Takashi Iwai 提交于
      The name argument of request_irq() appears in /proc/interrupts, and
      it's quite ugly when the name entry contains a space or special letters.
      In general, it's simpler and more readable when the module name appears
      there, so let's replace all entries with KBUILD_MODNAME.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      934c2b6d
    • T
      ALSA: Use KBUILD_MODNAME for pci_driver.name entries · 3733e424
      Takashi Iwai 提交于
      The convention for pci_driver.name entry in kernel drivers seem to be
      the module name or equivalent ones.  But, so far, almost all PCI sound
      drivers use more verbose name like "ABC Xyz (12)", and these are fairly
      confusing when appearing as a file name.
      
      This patch converts the all pci_driver.name entries in sound/pci/* to
      use KBUILD_MODNAME for more unified appearance.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      3733e424
  8. 31 3月, 2011 1 次提交
  9. 08 3月, 2011 1 次提交
  10. 28 2月, 2011 4 次提交
    • A
      ALSA: hdspm - Fix midi port initialization · 7c7102b7
      Adrian Knoth 提交于
      Depending on the model and the presence of a TCO module, the number of
      midi ports varies. Some have 1 port (MADIface), some have 2 (default),
      with TCO, there are 3.
      
      Don't hardcode the number of midi ports to initialize.
      
      This patch also fixes a boot lockup on MADIface.
      
      [Coding-style fixes by tiwai]
      Signed-off-by: NAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7c7102b7
    • A
      ALSA: hdspm - Abort on unknown firmware revision · 5027f347
      Adrian Knoth 提交于
      Don't continue if we cannot detect the real card type, otherwise, all
      subsequent functions, especially strcpy(), would fail, leaving the whole
      driver in an unusable state.
      
      Without such a protection, dmesg would look like this:
      
      Pid: 1525, comm: modprobe Not tainted 2.6.38-rc6 #1 MSI MS-7250/MS-7250
      EIP: 0060:[<c114e700>] EFLAGS: 00010296 CPU: 1
      EIP is at strcpy+0x10/0x30
      EAX: f4d33e58 EBX: f5990800 ECX: f4d33e58 EDX: 00000000
      ESI: 00000000 EDI: f4d33e58 EBP: f5990930 ESP: f3dd3e0c
      DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
      f53d4204 00000000 f90bfc03 00000001 00000001 f3dd3e64 c10fedff f3dd3e7c
      f3d854e4 f53d4000 c10307b8 00000001 c10307b8 f5990860 c10307b8 00000001
      c10332e5 f59908bc c12f4339 f59908bc f5990860 c11ef207 f4d33e00 f53d4000
      [<f90bfc03>] ? snd_hdspm_probe+0x7e7/0x1166 [snd_hdspm]
      [<c10fedff>] ? __sysfs_add_one+0x1f/0xf0
      [<c10307b8>] ? get_parent_ip+0x8/0x20
      [<c10307b8>] ? get_parent_ip+0x8/0x20
      [<c10307b8>] ? get_parent_ip+0x8/0x20
      [<c10332e5>] ? add_preempt_count+0xa5/0xd0
      [<c12f4339>] ? _raw_spin_lock_irqsave+0x19/0x40
      [<c11ef207>] ? pm_runtime_enable+0x17/0x80
      [<c1160172>] ? local_pci_probe+0x42/0xb0
      [<c1161091>] ? pci_device_probe+0x61/0x80
      [<c11e9587>] ? driver_probe_device+0x77/0x180
      [<c11600f0>] ? pci_match_device+0xa0/0xc0
      [<c11e9709>] ? __driver_attach+0x79/0x80
      [<c11e9690>] ? __driver_attach+0x0/0x80
      [<c11e8e32>] ? bus_for_each_dev+0x52/0x80
      [<c11e9416>] ? driver_attach+0x16/0x20
      [<c11e9690>] ? __driver_attach+0x0/0x80
      [<c11e8771>] ? bus_add_driver+0xa1/0x220
      [<c1160f20>] ? pci_device_remove+0x0/0xf0
      [<c11e99a3>] ? driver_register+0x63/0x120
      [<c11612bd>] ? __pci_register_driver+0x3d/0xb0
      [<c1001132>] ? do_one_initcall+0x32/0x160
      [<f90d6000>] ? alsa_card_hdspm_init+0x0/0x14 [snd_hdspm]
      [<c10676a9>] ? sys_init_module+0x99/0x1e0
      [<c10ade3d>] ? sys_close+0x6d/0xc0
      [<c1002c90>] ? sysenter_do_call+0x12/0x26
      ---[ end trace 239f0661c558378b ]---
      Signed-off-by: NAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      5027f347
    • A
      ALSA: hdspm - Add updated firmware revision for AES32 · 526ea867
      Adrian Knoth 提交于
      In contrast to the PCIe version (RME AES), the PCI version (RME AES32)
      has a different firmware revision.
      
      This patch adds the missing PCI revision.
      Signed-off-by: NAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      526ea867
    • A
  11. 23 2月, 2011 8 次提交
    • A
      a7edbd5b
    • A
      ALSA: hdspm - prevent reading unitialized stack memory · 4ab69a2b
      Adrian Knoth 提交于
      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: NAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      4ab69a2b
    • A
      ALSA: hdspm - fix sync check on AES32 · 7c4a95b5
      Adrian Knoth 提交于
      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: NAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7c4a95b5
    • A
      ALSA: hdspm - Remove input selector on MADIface · f6ea805f
      Adrian Knoth 提交于
      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: NAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      f6ea805f
    • A
      ALSA: hdspm - Fix DS/QS output channel mappings on RME MADI/MADIface · 01e96078
      Adrian Knoth 提交于
      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: NFlorian Faber <faber@faberman.de>
      Signed-off-by: NFredrik Lingvall <fredrik.lingvall@gmail.com>
      Signed-off-by: NAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      01e96078
    • A
      ALSA: hdspm - Restrict channel count on RME AES/AES32 · 88fabbfc
      Adrian Knoth 提交于
      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: NAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      88fabbfc
    • A
      ALSA: hdspm - Fix buffer handling on RME MADI/MADIface/AES(32) · 483cee77
      Adrian Knoth 提交于
      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: NAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      483cee77
    • A
      ALSA: hpdsm - RME AES(32): Fix missing channel mappings · 432d2500
      Adrian Knoth 提交于
      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: NAdrian Knoth <adi@drcomp.erfurt.thur.de>
      Signed-off-by: NFlorian Faber <faber@faberman.de>
      Signed-off-by: NFredrik Lingvall <fredrik.lingvall@gmail.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      432d2500
  12. 27 1月, 2011 3 次提交
  13. 02 11月, 2010 1 次提交
  14. 25 9月, 2010 1 次提交
  15. 09 2月, 2010 1 次提交