]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Jul 2012 15:12:42 +0000 (11:12 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Jul 2012 15:12:42 +0000 (11:12 -0400)
added patches:
alsa-hda-add-realtek-alc280-codec-support.patch
alsa-hda-fix-memory-leaks-at-module-unload.patch
alsa-hda-fix-power-map-regression-for-hp-dv6-co.patch
powerpc-check_and_cede_processor-never-cedes.patch
powerpc-fix-uninitialised-error-in-numa.c.patch
powerpc-ftrace-do-not-trace-restore_interrupts.patch
powerpc-pseries-fix-software-invalidate-tce.patch

queue-3.4/alsa-hda-add-realtek-alc280-codec-support.patch [new file with mode: 0644]
queue-3.4/alsa-hda-fix-memory-leaks-at-module-unload.patch [new file with mode: 0644]
queue-3.4/alsa-hda-fix-power-map-regression-for-hp-dv6-co.patch [new file with mode: 0644]
queue-3.4/powerpc-check_and_cede_processor-never-cedes.patch [new file with mode: 0644]
queue-3.4/powerpc-fix-uninitialised-error-in-numa.c.patch [new file with mode: 0644]
queue-3.4/powerpc-ftrace-do-not-trace-restore_interrupts.patch [new file with mode: 0644]
queue-3.4/powerpc-pseries-fix-software-invalidate-tce.patch [new file with mode: 0644]
queue-3.4/series

diff --git a/queue-3.4/alsa-hda-add-realtek-alc280-codec-support.patch b/queue-3.4/alsa-hda-add-realtek-alc280-codec-support.patch
new file mode 100644 (file)
index 0000000..05e158b
--- /dev/null
@@ -0,0 +1,32 @@
+From befae82e2906cb7155020876a531b0b8c6c8d8c8 Mon Sep 17 00:00:00 2001
+From: David Henningsson <david.henningsson@canonical.com>
+Date: Mon, 25 Jun 2012 19:49:28 +0200
+Subject: ALSA: hda - Add Realtek ALC280 codec support
+
+From: David Henningsson <david.henningsson@canonical.com>
+
+commit befae82e2906cb7155020876a531b0b8c6c8d8c8 upstream.
+
+This chip looks very similar to ALC269 and ALC27* variants. The bug reporter
+has verified that sound was working after this patch had been applied.
+
+BugLink: https://bugs.launchpad.net/bugs/1017017
+Tested-by: Richard Crossley <richardcrossley@o2.co.uk>
+Signed-off-by: David Henningsson <david.henningsson@canonical.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_realtek.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -6976,6 +6976,7 @@ static const struct hda_codec_preset snd
+       { .id = 0x10ec0272, .name = "ALC272", .patch = patch_alc662 },
+       { .id = 0x10ec0275, .name = "ALC275", .patch = patch_alc269 },
+       { .id = 0x10ec0276, .name = "ALC276", .patch = patch_alc269 },
++      { .id = 0x10ec0280, .name = "ALC280", .patch = patch_alc269 },
+       { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660",
+         .patch = patch_alc861 },
+       { .id = 0x10ec0660, .name = "ALC660-VD", .patch = patch_alc861vd },
diff --git a/queue-3.4/alsa-hda-fix-memory-leaks-at-module-unload.patch b/queue-3.4/alsa-hda-fix-memory-leaks-at-module-unload.patch
new file mode 100644 (file)
index 0000000..fb41d7e
--- /dev/null
@@ -0,0 +1,36 @@
+From 59cad16bc6deb85bd2a464da92bbaae289f0286f Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Tue, 26 Jun 2012 15:00:20 +0200
+Subject: ALSA: hda - Fix memory leaks at module unload
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 59cad16bc6deb85bd2a464da92bbaae289f0286f upstream.
+
+Some caches aren't released properly at module unloading time.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/hda_codec.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/sound/pci/hda/hda_codec.c
++++ b/sound/pci/hda/hda_codec.c
+@@ -1192,6 +1192,7 @@ static void snd_hda_codec_free(struct hd
+ {
+       if (!codec)
+               return;
++      snd_hda_jack_tbl_clear(codec);
+       restore_init_pincfgs(codec);
+ #ifdef CONFIG_SND_HDA_POWER_SAVE
+       cancel_delayed_work(&codec->power_work);
+@@ -1200,6 +1201,7 @@ static void snd_hda_codec_free(struct hd
+       list_del(&codec->list);
+       snd_array_free(&codec->mixers);
+       snd_array_free(&codec->nids);
++      snd_array_free(&codec->cvt_setups);
+       snd_array_free(&codec->conn_lists);
+       snd_array_free(&codec->spdif_out);
+       codec->bus->caddr_tbl[codec->addr] = NULL;
diff --git a/queue-3.4/alsa-hda-fix-power-map-regression-for-hp-dv6-co.patch b/queue-3.4/alsa-hda-fix-power-map-regression-for-hp-dv6-co.patch
new file mode 100644 (file)
index 0000000..426920a
--- /dev/null
@@ -0,0 +1,53 @@
+From tiwai@suse.de  Fri Jun 29 23:44:27 2012
+From: Takashi Iwai <tiwai@suse.de>
+Date: Thu, 28 Jun 2012 07:30:39 +0200
+Subject: ALSA: hda - Fix power-map regression for HP dv6 & co
+To: stable@vger.kernel.org
+Cc: Luis Henriques <luis.henriques@canonical.com>
+Message-ID: <s5h395gc8ao.wl%tiwai@suse.de>
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 6e1c39c6b00d9141a82c231ba7c5e5b1716974b2 upstream.
+
+The recent fix for power-map controls (commit b0791dda813) caused
+regressions on some other HP laptops.  They have fixed pins but these
+pins are exposed as jack-detectable.  Thus the driver tries to control
+the power-map dynamically per jack detection where it never gets on.
+
+This patch corrects the condition check for fixed pins so that the
+power-map is set always for these pins.
+
+NOTE: this is no simple backport from 3.5 kernel.  Since 3.5 kernel
+had significant code change in the relevant part, I fixed this
+differently.
+
+BugLink: http://bugs.launchpad.net/bugs/1013183
+Reported-by: Luis Henriques <luis.henriques@canonical.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_sigmatel.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/sound/pci/hda/patch_sigmatel.c
++++ b/sound/pci/hda/patch_sigmatel.c
+@@ -4388,7 +4388,7 @@ static int stac92xx_init(struct hda_code
+                                        AC_PINCTL_IN_EN);
+       for (i = 0; i < spec->num_pwrs; i++)  {
+               hda_nid_t nid = spec->pwr_nids[i];
+-              int pinctl, def_conf;
++              unsigned int pinctl, def_conf;
+               /* power on when no jack detection is available */
+               /* or when the VREF is used for controlling LED */
+@@ -4415,7 +4415,7 @@ static int stac92xx_init(struct hda_code
+               def_conf = get_defcfg_connect(def_conf);
+               /* skip any ports that don't have jacks since presence
+                * detection is useless */
+-              if (def_conf != AC_JACK_PORT_NONE &&
++              if (def_conf != AC_JACK_PORT_COMPLEX ||
+                   !is_jack_detectable(codec, nid)) {
+                       stac_toggle_power_map(codec, nid, 1);
+                       continue;
diff --git a/queue-3.4/powerpc-check_and_cede_processor-never-cedes.patch b/queue-3.4/powerpc-check_and_cede_processor-never-cedes.patch
new file mode 100644 (file)
index 0000000..d70dcac
--- /dev/null
@@ -0,0 +1,56 @@
+From 0b17ba7258db83cd02da560884e053b85de371f2 Mon Sep 17 00:00:00 2001
+From: Anton Blanchard <anton@samba.org>
+Date: Wed, 27 Jun 2012 13:13:52 +0000
+Subject: powerpc: check_and_cede_processor() never cedes
+
+From: Anton Blanchard <anton@samba.org>
+
+commit 0b17ba7258db83cd02da560884e053b85de371f2 upstream.
+
+Commit f948501b36c6 ("Make hard_irq_disable() actually hard-disable
+interrupts") caused check_and_cede_processor to stop working.
+->irq_happened will never be zero right after a hard_irq_disable
+so the compiler removes the call to cede_processor completely.
+
+The bug was introduced back in the lazy interrupt handling rework
+of 3.4 but was hidden until recently because hard_irq_disable did
+nothing.
+
+This issue will eventually appear in 3.4 stable since the
+hard_irq_disable fix is marked stable, so mark this one for stable
+too.
+
+Signed-off-by: Anton Blanchard <anton@samba.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/include/asm/hw_irq.h               |    5 +++++
+ arch/powerpc/platforms/pseries/processor_idle.c |    2 +-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+--- a/arch/powerpc/include/asm/hw_irq.h
++++ b/arch/powerpc/include/asm/hw_irq.h
+@@ -102,6 +102,11 @@ static inline void hard_irq_disable(void
+ /* include/linux/interrupt.h needs hard_irq_disable to be a macro */
+ #define hard_irq_disable      hard_irq_disable
++static inline bool lazy_irq_pending(void)
++{
++      return !!(get_paca()->irq_happened & ~PACA_IRQ_HARD_DIS);
++}
++
+ /*
+  * This is called by asynchronous interrupts to conditionally
+  * re-enable hard interrupts when soft-disabled after having
+--- a/arch/powerpc/platforms/pseries/processor_idle.c
++++ b/arch/powerpc/platforms/pseries/processor_idle.c
+@@ -106,7 +106,7 @@ static void check_and_cede_processor(voi
+        * we first hard disable then check.
+        */
+       hard_irq_disable();
+-      if (get_paca()->irq_happened == 0)
++      if (!lazy_irq_pending())
+               cede_processor();
+ }
diff --git a/queue-3.4/powerpc-fix-uninitialised-error-in-numa.c.patch b/queue-3.4/powerpc-fix-uninitialised-error-in-numa.c.patch
new file mode 100644 (file)
index 0000000..50c158b
--- /dev/null
@@ -0,0 +1,34 @@
+From 82b2521d257b5c0efd51821cf5fa306e53bbb6ba Mon Sep 17 00:00:00 2001
+From: Michael Neuling <mikey@neuling.org>
+Date: Tue, 19 Jun 2012 20:01:45 +0000
+Subject: powerpc: Fix uninitialised error in numa.c
+
+From: Michael Neuling <mikey@neuling.org>
+
+commit 82b2521d257b5c0efd51821cf5fa306e53bbb6ba upstream.
+
+chroma_defconfig currently gives me this with gcc 4.6:
+  arch/powerpc/mm/numa.c:638:13: error: 'dm' may be used uninitialized in this function [-Werror=uninitialized]
+
+It's a bogus warning/error since of_get_drconf_memory() only writes it
+anyway.
+
+Signed-off-by: Michael Neuling <mikey@neuling.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/mm/numa.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/powerpc/mm/numa.c
++++ b/arch/powerpc/mm/numa.c
+@@ -635,7 +635,7 @@ static inline int __init read_usm_ranges
+  */
+ static void __init parse_drconf_memory(struct device_node *memory)
+ {
+-      const u32 *dm, *usm;
++      const u32 *uninitialized_var(dm), *usm;
+       unsigned int n, rc, ranges, is_kexec_kdump = 0;
+       unsigned long lmb_size, base, size, sz;
+       int nid;
diff --git a/queue-3.4/powerpc-ftrace-do-not-trace-restore_interrupts.patch b/queue-3.4/powerpc-ftrace-do-not-trace-restore_interrupts.patch
new file mode 100644 (file)
index 0000000..11fcced
--- /dev/null
@@ -0,0 +1,50 @@
+From 2d773aa4810d4a612d1c879faacc38594cc3f841 Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <rostedt@goodmis.org>
+Date: Mon, 4 Jun 2012 16:27:54 +0000
+Subject: powerpc/ftrace: Do not trace restore_interrupts()
+
+From: Steven Rostedt <rostedt@goodmis.org>
+
+commit 2d773aa4810d4a612d1c879faacc38594cc3f841 upstream.
+
+As I was adding code that affects all archs, I started testing function
+tracer against PPC64 and found that it currently locks up with 3.4
+kernel. I figured it was due to tracing a function that shouldn't be, so
+I went through the following process to bisect to find the culprit:
+
+ cat /debug/tracing/available_filter_functions > t
+ num=`wc -l t`
+ sed -ne "1,${num}p" t > t1
+ let num=num+1
+ sed -ne "${num},$p" t > t2
+ cat t1 > /debug/tracing/set_ftrace_filter
+ echo function /debug/tracing/current_tracer
+ <failed? bisect t1, if not bisect t2>
+
+It finally came down to this function: restore_interrupts()
+
+I'm not sure why this locks up the system. It just seems to prevent
+scheduling from occurring. Interrupts seem to still work, as I can ping
+the box. But all user processes freeze.
+
+When restore_interrupts() is not traced, function tracing works fine.
+
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/kernel/irq.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/powerpc/kernel/irq.c
++++ b/arch/powerpc/kernel/irq.c
+@@ -277,7 +277,7 @@ EXPORT_SYMBOL(arch_local_irq_restore);
+  * NOTE: This is called with interrupts hard disabled but not marked
+  * as such in paca->irq_happened, so we need to resync this.
+  */
+-void restore_interrupts(void)
++void notrace restore_interrupts(void)
+ {
+       if (irqs_disabled()) {
+               local_paca->irq_happened |= PACA_IRQ_HARD_DIS;
diff --git a/queue-3.4/powerpc-pseries-fix-software-invalidate-tce.patch b/queue-3.4/powerpc-pseries-fix-software-invalidate-tce.patch
new file mode 100644 (file)
index 0000000..92a2b1f
--- /dev/null
@@ -0,0 +1,43 @@
+From bc6dc752f35488160ffac07ae91bed1bddaea32a Mon Sep 17 00:00:00 2001
+From: Michael Neuling <mikey@neuling.org>
+Date: Tue, 26 Jun 2012 21:26:37 +0000
+Subject: powerpc/pseries: Fix software invalidate TCE
+
+From: Michael Neuling <mikey@neuling.org>
+
+commit bc6dc752f35488160ffac07ae91bed1bddaea32a upstream.
+
+The following added support for powernv but broke pseries/BML:
+ 1f1616e powerpc/powernv: Add TCE SW invalidation support
+
+TCE_PCI_SW_INVAL was split into FREE and CREATE flags but the tests in
+the pseries code were not updated to reflect this.
+
+Signed-off-by: Michael Neuling <mikey@neuling.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/platforms/pseries/iommu.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/powerpc/platforms/pseries/iommu.c
++++ b/arch/powerpc/platforms/pseries/iommu.c
+@@ -106,7 +106,7 @@ static int tce_build_pSeries(struct iomm
+               tcep++;
+       }
+-      if (tbl->it_type == TCE_PCI_SWINV_CREATE)
++      if (tbl->it_type & TCE_PCI_SWINV_CREATE)
+               tce_invalidate_pSeries_sw(tbl, tces, tcep - 1);
+       return 0;
+ }
+@@ -121,7 +121,7 @@ static void tce_free_pSeries(struct iomm
+       while (npages--)
+               *(tcep++) = 0;
+-      if (tbl->it_type == TCE_PCI_SWINV_FREE)
++      if (tbl->it_type & TCE_PCI_SWINV_FREE)
+               tce_invalidate_pSeries_sw(tbl, tces, tcep - 1);
+ }
index 82ee75a2d2127b97631cf9161e0b91868ab91cb9..f0f19af1ac522d3f6ff43559959d6831a4efc27a 100644 (file)
@@ -1,3 +1,10 @@
 tools-hv-verify-origin-of-netlink-connector-message.patch
 arm-orion-fix-virtual-physical-mixup-with-watchdog.patch
 arm-tegra-make-tegra_cpu_reset_handler_enable-__init.patch
+alsa-hda-add-realtek-alc280-codec-support.patch
+alsa-hda-fix-memory-leaks-at-module-unload.patch
+alsa-hda-fix-power-map-regression-for-hp-dv6-co.patch
+powerpc-ftrace-do-not-trace-restore_interrupts.patch
+powerpc-fix-uninitialised-error-in-numa.c.patch
+powerpc-pseries-fix-software-invalidate-tce.patch
+powerpc-check_and_cede_processor-never-cedes.patch