diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2011-09-23 21:29:20 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-09-23 21:29:20 -0700 |
commit | 580ed93841c2915768628e873eff0b26382ed248 (patch) | |
tree | 8d81870557828f4ac0e2e0b5e4512b510a787c5f | |
parent | 7808fbde89350c5956d9b8aaebaadff51ddcee26 (diff) | |
download | stable-queue-580ed93841c2915768628e873eff0b26382ed248.tar.gz |
3.0 patches
6 files changed, 241 insertions, 0 deletions
diff --git a/queue-3.0/alsa-fm801-fix-double-free-in-case-of-error-in-tuner-detection.patch b/queue-3.0/alsa-fm801-fix-double-free-in-case-of-error-in-tuner-detection.patch new file mode 100644 index 0000000000..9587f8b233 --- /dev/null +++ b/queue-3.0/alsa-fm801-fix-double-free-in-case-of-error-in-tuner-detection.patch @@ -0,0 +1,45 @@ +From 2ba34e43ba0469086d1ff81c13a9aa9070c1a0e1 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings <ben@decadent.org.uk> +Date: Thu, 22 Sep 2011 14:38:58 +0100 +Subject: ALSA: fm801: Fix double free in case of error in tuner detection + +From: Ben Hutchings <ben@decadent.org.uk> + +commit 2ba34e43ba0469086d1ff81c13a9aa9070c1a0e1 upstream. + +Commit 9676001559fce06e37c7dc230ab275f605556176 +("ALSA: fm801: add error handling if auto-detect fails") added +incorrect error handling. + +Once we have successfully called snd_device_new(), the cleanup +function fm801_free() will automatically be called by snd_card_free() +and we must *not* also call fm801_free() directly. + +Reported-by: Hor Jiun Shyong <jiunshyong@gmail.com> +References: http://bugs.debian.org/641946 +Signed-off-by: Ben Hutchings <ben@decadent.org.uk> +Signed-off-by: Takashi Iwai <tiwai@suse.de> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + sound/pci/fm801.c | 2 -- + 1 file changed, 2 deletions(-) + +--- a/sound/pci/fm801.c ++++ b/sound/pci/fm801.c +@@ -1236,7 +1236,6 @@ static int __devinit snd_fm801_create(st + (tea575x_tuner & TUNER_TYPE_MASK) < 4) { + if (snd_tea575x_init(&chip->tea)) { + snd_printk(KERN_ERR "TEA575x radio not found\n"); +- snd_fm801_free(chip); + return -ENODEV; + } + } else if ((tea575x_tuner & TUNER_TYPE_MASK) == 0) { +@@ -1251,7 +1250,6 @@ static int __devinit snd_fm801_create(st + } + if (tea575x_tuner == 4) { + snd_printk(KERN_ERR "TEA575x radio not found\n"); +- snd_fm801_free(chip); + return -ENODEV; + } + } diff --git a/queue-3.0/alsa-fm801-gracefully-handle-failure-of-tuner-auto-detect.patch b/queue-3.0/alsa-fm801-gracefully-handle-failure-of-tuner-auto-detect.patch new file mode 100644 index 0000000000..5aadbdf0c7 --- /dev/null +++ b/queue-3.0/alsa-fm801-gracefully-handle-failure-of-tuner-auto-detect.patch @@ -0,0 +1,64 @@ +From c37279b92aba2893578f61076cd2eef5c5fa0e99 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings <ben@decadent.org.uk> +Date: Thu, 22 Sep 2011 14:39:52 +0100 +Subject: ALSA: fm801: Gracefully handle failure of tuner auto-detect + +From: Ben Hutchings <ben@decadent.org.uk> + +commit c37279b92aba2893578f61076cd2eef5c5fa0e99 upstream. + +Commit 9676001559fce06e37c7dc230ab275f605556176 +("ALSA: fm801: add error handling if auto-detect fails") seems to +break systems that were previously working without a tuner. + +As a bonus, this should fix init and cleanup for the case where the +tuner is explicitly disabled. + +Reported-and-tested-by: Hor Jiun Shyong <jiunshyong@gmail.com> +References: http://bugs.debian.org/641946 +Signed-off-by: Ben Hutchings <ben@decadent.org.uk> +Signed-off-by: Takashi Iwai <tiwai@suse.de> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + sound/pci/fm801.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +--- a/sound/pci/fm801.c ++++ b/sound/pci/fm801.c +@@ -68,6 +68,7 @@ MODULE_PARM_DESC(enable, "Enable FM801 s + module_param_array(tea575x_tuner, int, NULL, 0444); + MODULE_PARM_DESC(tea575x_tuner, "TEA575x tuner access method (0 = auto, 1 = SF256-PCS, 2=SF256-PCP, 3=SF64-PCR, 8=disable, +16=tuner-only)."); + ++#define TUNER_DISABLED (1<<3) + #define TUNER_ONLY (1<<4) + #define TUNER_TYPE_MASK (~TUNER_ONLY & 0xFFFF) + +@@ -1150,7 +1151,8 @@ static int snd_fm801_free(struct fm801 * + + __end_hw: + #ifdef CONFIG_SND_FM801_TEA575X_BOOL +- snd_tea575x_exit(&chip->tea); ++ if (!(chip->tea575x_tuner & TUNER_DISABLED)) ++ snd_tea575x_exit(&chip->tea); + #endif + if (chip->irq >= 0) + free_irq(chip->irq, chip); +@@ -1250,10 +1252,15 @@ static int __devinit snd_fm801_create(st + } + if (tea575x_tuner == 4) { + snd_printk(KERN_ERR "TEA575x radio not found\n"); +- return -ENODEV; ++ chip->tea575x_tuner = TUNER_DISABLED; + } + } +- strlcpy(chip->tea.card, snd_fm801_tea575x_gpios[(tea575x_tuner & TUNER_TYPE_MASK) - 1].name, sizeof(chip->tea.card)); ++ if (!(chip->tea575x_tuner & TUNER_DISABLED)) { ++ strlcpy(chip->tea.card, ++ snd_fm801_tea575x_gpios[(tea575x_tuner & ++ TUNER_TYPE_MASK) - 1].name, ++ sizeof(chip->tea.card)); ++ } + #endif + + *rchip = chip; diff --git a/queue-3.0/alsa-usb-audio-clear-chip-probing-on-error-exit.patch b/queue-3.0/alsa-usb-audio-clear-chip-probing-on-error-exit.patch new file mode 100644 index 0000000000..204cef465d --- /dev/null +++ b/queue-3.0/alsa-usb-audio-clear-chip-probing-on-error-exit.patch @@ -0,0 +1,47 @@ +From 362e4e49abe53e89d87455dfcd7c1bbaf08a839d Mon Sep 17 00:00:00 2001 +From: Thomas Pfaff <tpfaff@gmx.net> +Date: Thu, 22 Sep 2011 18:26:06 +0200 +Subject: ALSA: usb-audio - clear chip->probing on error exit + +From: Thomas Pfaff <tpfaff@gmx.net> + +commit 362e4e49abe53e89d87455dfcd7c1bbaf08a839d upstream. + +The Terratec Aureon 5.1 USB sound card support is broken since kernel +2.6.39. +2.6.39 introduced power management support for USB sound cards that added +a probing flag in struct snd_usb_audio. + +During the probe of the card it gives following error message : + +usb 7-2: new full speed USB device number 2 using uhci_hcd +cannot find UAC_HEADER +snd-usb-audio: probe of 7-2:1.3 failed with error -5 +input: USB Audio as +/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.3/input/input6 +generic-usb 0003:0CCD:0028.0001: input: USB HID v1.00 Device [USB Audio] +on usb-0000:00:1d.1-2/input3 + +I can not comment about that "cannot find UAC_HEADER" error, but until +2.6.38 the card worked anyway. +With 2.6.39 chip->probing remains 1 on error exit, and any later ioctl +stops in snd_usb_autoresume with -ENODEV. + +Signed-off-by: Thomas Pfaff <tpfaff@gmx.net> +Signed-off-by: Takashi Iwai <tiwai@suse.de> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + sound/usb/card.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/usb/card.c ++++ b/sound/usb/card.c +@@ -531,6 +531,7 @@ static void *snd_usb_audio_probe(struct + __error: + if (chip && !chip->num_interfaces) + snd_card_free(chip->card); ++ chip->probing = 0; + mutex_unlock(®ister_mutex); + __err_val: + return NULL; diff --git a/queue-3.0/drm-radeon-kms-fix-ddia-enable-on-some-rs690-systems.patch b/queue-3.0/drm-radeon-kms-fix-ddia-enable-on-some-rs690-systems.patch new file mode 100644 index 0000000000..d3cd050beb --- /dev/null +++ b/queue-3.0/drm-radeon-kms-fix-ddia-enable-on-some-rs690-systems.patch @@ -0,0 +1,40 @@ +From fdfc61594e6de21c23f955818ef78bcab9bafe40 Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Thu, 22 Sep 2011 10:47:23 -0400 +Subject: drm/radeon/kms: fix DDIA enable on some rs690 systems + +From: Alex Deucher <alexander.deucher@amd.com> + +commit fdfc61594e6de21c23f955818ef78bcab9bafe40 upstream. + +DVOOutputControl checks the value of of bios scratch reg 3 +on some tables and assumes the encoder is already enabled +if the DFP2_ACTIVE bit is set. Clear that bit so the table +sets the DDIA enable bit properly. + +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +Signed-off-by: Dave Airlie <airlied@redhat.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/gpu/drm/radeon/radeon_encoders.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +--- a/drivers/gpu/drm/radeon/radeon_encoders.c ++++ b/drivers/gpu/drm/radeon/radeon_encoders.c +@@ -1507,7 +1507,14 @@ radeon_atom_encoder_dpms(struct drm_enco + switch (mode) { + case DRM_MODE_DPMS_ON: + args.ucAction = ATOM_ENABLE; +- atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); ++ /* workaround for DVOOutputControl on some RS690 systems */ ++ if (radeon_encoder->encoder_id == ENCODER_OBJECT_ID_INTERNAL_DDI) { ++ u32 reg = RREG32(RADEON_BIOS_3_SCRATCH); ++ WREG32(RADEON_BIOS_3_SCRATCH, reg & ~ATOM_S3_DFP2I_ACTIVE); ++ atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); ++ WREG32(RADEON_BIOS_3_SCRATCH, reg); ++ } else ++ atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); + if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) { + args.ucAction = ATOM_LCD_BLON; + atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); diff --git a/queue-3.0/perf-symbols-fix-ppc64-segv-in-dso__load_sym-with-debuginfo-files.patch b/queue-3.0/perf-symbols-fix-ppc64-segv-in-dso__load_sym-with-debuginfo-files.patch new file mode 100644 index 0000000000..5b8cb04e5f --- /dev/null +++ b/queue-3.0/perf-symbols-fix-ppc64-segv-in-dso__load_sym-with-debuginfo-files.patch @@ -0,0 +1,40 @@ +From adb091846318f86e4f46c7d6a7b40d2f478abdbe Mon Sep 17 00:00:00 2001 +From: Anton Blanchard <anton@samba.org> +Date: Wed, 24 Aug 2011 16:40:14 +1000 +Subject: perf symbols: Fix ppc64 SEGV in dso__load_sym with debuginfo files + +From: Anton Blanchard <anton@samba.org> + +commit adb091846318f86e4f46c7d6a7b40d2f478abdbe upstream. + +64bit PowerPC debuginfo files have an empty function descriptor section. +I hit a SEGV when perf tried to use this section for symbol resolution. + +To fix this we need to check the section is valid and we can do this by +checking for type SHT_PROGBITS. + +Cc: <stable@kernel.org> +Cc: Ingo Molnar <mingo@elte.hu> +Cc: Paul Mackerras <paulus@samba.org> +Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> +Cc: Eric B Munson <emunson@mgebm.net> +Link: http://lkml.kernel.org/r/20110824065242.895239970@samba.org +Signed-off-by: Anton Blanchard <anton@samba.org> +Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + tools/perf/util/symbol.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/tools/perf/util/symbol.c ++++ b/tools/perf/util/symbol.c +@@ -1111,6 +1111,8 @@ static int dso__load_sym(struct dso *dso + } + + opdsec = elf_section_by_name(elf, &ehdr, &opdshdr, ".opd", &opdidx); ++ if (opdshdr.sh_type != SHT_PROGBITS) ++ opdsec = NULL; + if (opdsec) + opddata = elf_rawdata(opdsec, NULL); + diff --git a/queue-3.0/series b/queue-3.0/series index 2b5d9af9be..be92d9bfb6 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -204,3 +204,8 @@ ahci-raid-mode-sata-patch-for-intel-panther-point-deviceids.patch bluetooth-fix-timeout-on-scanning-for-the-second-time.patch libiscsi_tcp-fix-lld-data-allocation.patch usb-host-pci-quirks.c-correct-annotation-of.patch +perf-symbols-fix-ppc64-segv-in-dso__load_sym-with-debuginfo-files.patch +alsa-usb-audio-clear-chip-probing-on-error-exit.patch +drm-radeon-kms-fix-ddia-enable-on-some-rs690-systems.patch +alsa-fm801-fix-double-free-in-case-of-error-in-tuner-detection.patch +alsa-fm801-gracefully-handle-failure-of-tuner-auto-detect.patch |