summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2011-09-23 21:29:20 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2011-09-23 21:29:20 -0700
commit580ed93841c2915768628e873eff0b26382ed248 (patch)
tree8d81870557828f4ac0e2e0b5e4512b510a787c5f
parent7808fbde89350c5956d9b8aaebaadff51ddcee26 (diff)
downloadstable-queue-580ed93841c2915768628e873eff0b26382ed248.tar.gz
3.0 patches
-rw-r--r--queue-3.0/alsa-fm801-fix-double-free-in-case-of-error-in-tuner-detection.patch45
-rw-r--r--queue-3.0/alsa-fm801-gracefully-handle-failure-of-tuner-auto-detect.patch64
-rw-r--r--queue-3.0/alsa-usb-audio-clear-chip-probing-on-error-exit.patch47
-rw-r--r--queue-3.0/drm-radeon-kms-fix-ddia-enable-on-some-rs690-systems.patch40
-rw-r--r--queue-3.0/perf-symbols-fix-ppc64-segv-in-dso__load_sym-with-debuginfo-files.patch40
-rw-r--r--queue-3.0/series5
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(&register_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