summaryrefslogtreecommitdiffstats
path: root/sound (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ALSA: rawmidi: fix oops (use after free) when unloading a driver moduleClemens Ladisch2010-10-171-1/+3
| | | | | | | | | | | | | | When a driver module is unloaded and the last still open file is a raw MIDI device, the card and its devices will be actually freed in the snd_card_file_remove() call when that file is closed. Afterwards, rmidi and rmidi->card point into freed memory, so the module pointer is likely to be garbage. (This was introduced by commit 9a1b64caac82aa02cb74587ffc798e6f42c6170a.) Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Reported-by: Krzysztof Foltman <wdev@foltman.com> Cc: 2.6.30-2.6.35 <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add another HP DV6 quirkLuke Yelavich2010-10-111-0/+2
| | | | | | | | | BugLink: https://bugs.launchpad.net/bugs/653420 Add another HP DV6 notebook (103c:363e) to use STAC_HP_DV5. Signed-off-by: Luke Yelavich <luke.yelavich@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* OSS: soundcard: locking bug in sound_ioctl()Dan Carpenter2010-10-111-2/+2
| | | | | | | | | | | | | We shouldn't return directly here because we're still holding the &soundcard_mutex. This bug goes all the way back to the start of git. It's strange that no one has complained about it as a runtime bug. CC: stable@kernel.org Signed-off-by: Dan Carpenter <error27@gmail.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'fix/misc' of ↵Linus Torvalds2010-10-042-1/+6
|\ | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'fix/misc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: i2c/other/ak4xx-adda: Fix a compile warning with CONFIG_PROCFS=n ALSA: prevent heap corruption in snd_ctl_new()
| * ALSA: i2c/other/ak4xx-adda: Fix a compile warning with CONFIG_PROCFS=nTakashi Iwai2010-09-301-1/+1
| | | | | | | | Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: prevent heap corruption in snd_ctl_new()Dan Rosenberg2010-09-281-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The snd_ctl_new() function in sound/core/control.c allocates space for a snd_kcontrol struct by performing arithmetic operations on a user-provided size without checking for integer overflow. If a user provides a large enough size, an overflow will occur, the allocated chunk will be too small, and a second user-influenced value will be written repeatedly past the bounds of this chunk. This code is reachable by unprivileged users who have permission to open a /dev/snd/controlC* device (on many distros, this is group "audio") via the SNDRV_CTL_IOCTL_ELEM_ADD and SNDRV_CTL_IOCTL_ELEM_REPLACE ioctls. Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'fix/hda' into for-linusTakashi Iwai2010-09-252-6/+17
|\ \
| * | ALSA: hda - Fix auto-parse of SPDIF input of Realtek codecsTakashi Iwai2010-09-241-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | The SPDIF in audio widget must be searched through the list as the widget that contains the given pin as the connection source. The current code was implemented in a reverse way. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Add Dell Latitude E6400 model quirkLuke Yelavich2010-09-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/643891 Set the Dell Latitude E6400 (1028:0233) SSID to use AD1984_DELL_DESKTOP Cc: stable@kernel.org Signed-off-by: Luke Yelavich <luke.yelavich@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | Merge branch 'fix/asoc' into for-linusTakashi Iwai2010-09-252-4/+16
|\ \ \ | |_|/ |/| |
| * | ASoC: Fix multi-componentismMark Brown2010-09-221-1/+1
| | | | | | | | | | | | | | | | | | Spot the build testing. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ASoC: Fix soc-cache buffer overflow bugDimitris Papastamos2010-09-221-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure we stay within the cache boundaries when updating the register cache. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ASoC: fix clkdev API usage in sh/migor.cGuennadi Liakhovetski2010-09-191-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The clkdev API doesn't use .name and .id members of struct clk for clock lookup. Instead clocks should be added to a lookup list. Without this patch audio om the Migo-R board fails silently. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | ALSA: sound/pci/rme9652: prevent reading uninitialized stack memoryDan Rosenberg2010-09-252-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SNDRV_HDSP_IOCTL_GET_CONFIG_INFO and SNDRV_HDSP_IOCTL_GET_CONFIG_INFO ioctls in hdspm.c and hdsp.c allow unprivileged users to read uninitialized kernel stack memory, because several fields of the hdsp{m}_config_info structs 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: Dan Rosenberg <dan.j.rosenberg@gmail.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: oxygen: fix analog capture on Claro halo cardsErik J. Staab2010-09-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On the HT-Omega Claro halo card, the ADC data must be captured from the second I2S input. Using the default first input, which isn't connected to anything, would result in silence. Signed-off-by: Erik J. Staab <ejs@insightbb.com> Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | Merge branch 'fix/hda' into for-linusTakashi Iwai2010-09-174-1/+15
|\ \ \ | | |/ | |/|
| * | ALSA: HDA: Enable internal speaker on Dell M101zDavid Henningsson2010-09-161-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BugLink: http://launchpad.net/bugs/640254 In some cases a magic processing coefficient is needed to enable the internal speaker on Dell M101z. According to Realtek, this processing coefficient is only present on ALC269vb. Cc: stable@kernel.org Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: patch_nvhdmi.c: Fix supported sample rate list.Stephen Warren2010-09-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 22050 isn't a valid HDMI sample rate. 32000 is. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-By: Wei Ni <wni@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Add quirk for Toshiba C650D using a Conexant CX20585Anisse Astier2010-09-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Add a quirk for laptop Toshiba Satellite C650D to have proper external HP and external Mic support. Signed-off-by: Anisse Astier <anisse@astier.eu> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda_intel: ALSA HD Audio patch for Intel Patsburg DeviceIDsSeth Heasley2010-09-131-0/+3
| | | | | | | | | | | | | | | | | | | | | This patch adds the Intel Patsburg (PCH) HD Audio Controller DeviceIDs. Signed-off-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: pcm - Fix race with proc filesTakashi Iwai2010-09-161-9/+24
| | | | | | | | | | | | | | | | | | | | | The PCM proc files may open a race against substream close, which can end up with an Oops. Use the open_mutex to protect for it. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: pcm - Fix unbalanced pm_qos_requestTakashi Iwai2010-09-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The pm_qos_request isn't freed properly when OSS PCM emulation is used because it skips snd_pcm_hw_free() call but directly releases the stream. This resulted in Oops later. Tested-by: Simon Kirby <sim@hostway.ca> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | sound: Remove pr_<level> uses of KERN_<level>Joe Perches2010-09-132-3/+2
|/ / | | | | | | | | | | | | Signed-off-by: Joe Perches <joe@perches.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Geoff Levand <geoff@infradead.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'fix/hda' into for-linusTakashi Iwai2010-09-104-1/+110
|\ \
| * | ALSA: hda - Fix wrong HP pin detection in snd_hda_parse_pin_def_config()Takashi Iwai2010-09-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | snd_hda_parse_pin_def_config() has some workaround for re-assigning some pins declared as headphones to line-outs. This didn't work properly for some cases because it used memmove() stupidly wrongly. Reference: Novell bnc#637263 https://bugzilla.novell.com/show_bug.cgi?id=637263 Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Enable PC-beep for EeePC with ALC269 codecTakashi Iwai2010-09-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | EeePC 1001HAG has a similar problem like other ASUS machine, which doesn't set the codec SSID properly for indicating the beep capability. To enable PC-beep again, put this to the whitelist. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Add errata initverb sequence for CS42xx codecsBrian Austin2010-09-081-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add init verb sequence for errata ER880C3 http://www.cirrus.com/en/pubs/errata/ER880C3.pdf Signed-off-by: Brian Austin <brian.austin@cirrus.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Add quirk for Lenovo T400sTakashi Iwai2010-09-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Lenovo T400s requires the quirk to make automatic HP/mic switching working. Reported-by: Frank Becker <fb@alien8.de> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Add a new hp-laptop model for Conexant 5066, tested on HP G60David Henningsson2010-09-021-0/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new model adds the following functionality to HP G60: - Automute of internal speakers - Autoswitch of internal/external mics - Remove SPDIF not physically present BugLink: http://launchpad.net/bugs/587388 Cc: stable@kernel.org Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: rawmidi: fix the get next midi device ioctlDan Carpenter2010-09-091-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we pass in a device which is higher than SNDRV_RAWMIDI_DEVICES then the "next device" should be -1. This function just returns device + 1. But the main thing is that "device + 1" can lead to a (harmless) integer overflow and that annoys static analysis tools. [fix the case for device == SNDRV_RAWMIDI_DEVICE by tiwai] Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: seq/oss - Fix double-free at error path of snd_seq_oss_open()Takashi Iwai2010-09-081-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The error handling in snd_seq_oss_open() has several bad codes that do dereferecing released pointers and double-free of kmalloc'ed data. The object dp is release in free_devinfo() that is called via private_free callback. The rest shouldn't touch this object any more. The patch changes delete_port() to call kfree() in any case, and gets rid of unnecessary calls of destructors in snd_seq_oss_open(). Fixes CVE-2010-3080. Reported-and-tested-by: Tavis Ormandy <taviso@cmpxchg8b.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: msnd-classic: Fix invalid cfg parameterTakashi Iwai2010-09-081-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | The driver doesn't probe the device properly because of left-over cfg[] that isn't used at all for msnd-classic device. This is only for msnd- pinnacle. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: usb - Release capture substream URBs properlyTakashi Iwai2010-09-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to the wrong "return" in the loop, a capture substream won't be released at disconnection properly if the device is capture only and has no playback substream. This caused Oops occasionally at the device reconnection. Reported-by: Kim Minhyoung <minhyoung.kim@lge.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: virtuoso: fix setting of Xonar DS line-in/mic-in controlsClemens Ladisch2010-09-081-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Line and Mic inputs cannot be used at the same time, so the driver has to automatically disable one of them if both are set. However, it forgot to notify userspace about this change, so the mixer state would be inconsistent. To fix this, check if the other control gets muted, and send a notification event in this case. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Reported-and-tested-by: Nathan Schagen Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: virtuoso: work around missing reset in the Xonar DS Windows driverClemens Ladisch2010-09-084-3/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the WM8776 chip, this driver uses a different sample format and more features than the Windows driver. When rebooting from Linux into Windows, the latter driver does not reset the chip but assumes all its registers have their default settings, so we get garbled sound or, if the output happened to be muted before rebooting, no sound. To make that driver happy, hook our driver's cleanup function into the shutdown notifier and ensure that the chip gets reset. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Reported-and-tested-by: Nathan Schagen Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: usb-audio: fix detection of vendor-specific device protocol settingsClemens Ladisch2010-09-036-26/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Audio Class v2 support code in 2.6.35 added checks for the bInterfaceProtocol field. However, there are devices (usually those detected by vendor-specific quirks) that do not have one of the predefined values in this field, which made the driver reject them. To fix this regression, restore the old behaviour, i.e., assume that a device with an unknown bInterfaceProtocol field (other than UAC_VERSION_2) has more or less UAC-v1-compatible descriptors. [compile warning fixes by tiwai] Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: Daniel Mack <daniel@caiaq.de> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: usb-audio: Assume first control interface is for audioDaniel Mack2010-09-021-1/+7
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | For devices with more than one control interface, let's assume the first one contains the audio controls. Unfortunately, there is no field in any of the descriptors to tell us whether a control interface is for audio or MIDI controls, so a better check is not easy to implement. On a composite device with audio and MIDI functions, for example, the code currently overwrites chip->ctrl_intf, causing operations on the control interface to fail if they are issued after the device probe. Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'fix/asoc' into for-linusTakashi Iwai2010-08-281-1/+1
|\|
| * ASoC: soc-core: fix debugfs_pop_time file permissionsAxel Lin2010-08-271-1/+1
| | | | | | | | | | | | | | | | I think this is a typo, debugfs_pop_time should not be executable. Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Liam Girdwood <lrg@slimloogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | Merge branch 'fix/hda' into for-linusTakashi Iwai2010-08-281-0/+1
|\ \
| * | ALSA: hda - Add Sony VAIO quirk for ALC269David Henningsson2010-08-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The attached patch enables playback on a Sony VAIO machine. BugLink: http://launchpad.net/bugs/618271 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: pcm: add more format namesDan Carpenter2010-08-281-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were some new formats added in commit 15c0cee6c809 "ALSA: pcm: Define G723 3-bit and 5-bit formats". That commit increased SNDRV_PCM_FORMAT_LAST as well. My concern is that there are a couple places which do: for (i = 0; i < SNDRV_PCM_FORMAT_LAST; i++) { if (dummy->pcm_hw.formats & (1ULL << i)) snd_iprintf(buffer, " %s", snd_pcm_format_name(i)); } I haven't tested these but it looks like if "i" were equal to SNDRV_PCM_FORMAT_G723_24 or higher then we might read past the end of the array. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | sound: oss: fix uninitialized spinlockAkinobu Mita2010-08-281-1/+1
| | | | | | | | | | | | | | | | | | | | | The spinlock lock in sound_timer.c is used without initialization. Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: asihpi - Return hw error directly from oustream_write.Eliot Blennerhassett2010-08-281-2/+5
| | | | | | | | | | | | | | | | | | | | | If hw error is ignored, status is updated with invalid info. Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | Merge branch 'fix/asoc' into for-linusTakashi Iwai2010-08-231-0/+3
|\ \ \ | | |/ | |/|
| * | ASoC: i.MX ssi: use SSI_STCCR in synchronous modeSascha Hauer2010-08-231-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | In synchronous mode the SSI_SRCCR values are ignored. Instead SSI_STCCR must be used for both receiving and transmitting. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | Merge branch 'fix/hda' into for-linusTakashi Iwai2010-08-238-52/+40
|\ \ \ | | |/ | |/|
| * | ALSA: hda - Add support for Lenovo S10-3tJerone Young2010-08-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds quirk for the Lenovo S10-3t so the headphone & microphone jacks will now work. Signed-off-by: Jerone Young <jerone.young@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Fix stream and channel-ids codec-bus wideTakashi Iwai2010-08-202-14/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new sticky PCM parameter introduced the delayed clean-ups of stream- and channel-id tags. In the current implementation, this check (adding dirty flag) and actual clean-ups are done only for the codec chip. However, with HD-audio architecture, multiple codecs can be on a single bus, and the controller assign stream- and channel-ids in the bus-wide. In this patch, the stream-id and channel-id are checked over all codecs connected to the corresponding bus. Together with it, the mutex is moved to struct hda_bus, as this becomes also bus-wide. Reported-and-tested-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Fix conflict of sticky PCM parameter in HDMI codecsTakashi Iwai2010-08-203-36/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Intel and Nvidia HDMI codec drivers have own implementations of sticky PCM parameters. Now HD-audio core part already has it, thus both setups conflict. The fix is simply remove the part in patch_intelhdmi.c and patch_nvhdmi.c and simply call snd_hda_codec_setup_stream() as usual. Reported-and-tested-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>