From: Greg Kroah-Hartman Date: Fri, 12 Apr 2013 20:04:26 +0000 (-0700) Subject: 3.4-stable patches X-Git-Tag: v3.0.74~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=989457c36408e384c22160a69c273dd85b812b66;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches added patches: asoc-wm8903-fix-the-bypass-to-hp-lineout-when-no-dac-or-adc-is-running.patch drm-i915-use-the-correct-size-of-the-gtt-for-placing-the-per-process-entries.patch pm-reboot-call-syscore_shutdown-after-disable_nonboot_cpus.patch tracing-fix-double-free-when-function-profile-init-failed.patch --- diff --git a/queue-3.4/asoc-wm8903-fix-the-bypass-to-hp-lineout-when-no-dac-or-adc-is-running.patch b/queue-3.4/asoc-wm8903-fix-the-bypass-to-hp-lineout-when-no-dac-or-adc-is-running.patch new file mode 100644 index 00000000000..64868944cf2 --- /dev/null +++ b/queue-3.4/asoc-wm8903-fix-the-bypass-to-hp-lineout-when-no-dac-or-adc-is-running.patch @@ -0,0 +1,33 @@ +From f1ca493b0b5e8f42d3b2dc8877860db2983f47b6 Mon Sep 17 00:00:00 2001 +From: Alban Bedel +Date: Tue, 9 Apr 2013 17:13:59 +0200 +Subject: ASoC: wm8903: Fix the bypass to HP/LINEOUT when no DAC or ADC is running + +From: Alban Bedel + +commit f1ca493b0b5e8f42d3b2dc8877860db2983f47b6 upstream. + +The Charge Pump needs the DSP clock to work properly, without it the +bypass to HP/LINEOUT is not working properly. This requirement is not +mentioned in the datasheet but has been confirmed by Mark Brown from +Wolfson. + +Signed-off-by: Alban Bedel +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/wm8903.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/sound/soc/codecs/wm8903.c ++++ b/sound/soc/codecs/wm8903.c +@@ -1082,6 +1082,8 @@ static const struct snd_soc_dapm_route w + { "ROP", NULL, "Right Speaker PGA" }, + { "RON", NULL, "Right Speaker PGA" }, + ++ { "Charge Pump", NULL, "CLK_DSP" }, ++ + { "Left Headphone Output PGA", NULL, "Charge Pump" }, + { "Right Headphone Output PGA", NULL, "Charge Pump" }, + { "Left Line Output PGA", NULL, "Charge Pump" }, diff --git a/queue-3.4/drm-i915-use-the-correct-size-of-the-gtt-for-placing-the-per-process-entries.patch b/queue-3.4/drm-i915-use-the-correct-size-of-the-gtt-for-placing-the-per-process-entries.patch new file mode 100644 index 00000000000..4dfe3d04c2d --- /dev/null +++ b/queue-3.4/drm-i915-use-the-correct-size-of-the-gtt-for-placing-the-per-process-entries.patch @@ -0,0 +1,39 @@ +From 9a0f938bde74bf9e50bd75c8de9e38c1787398cd Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Fri, 24 Aug 2012 09:12:22 +0100 +Subject: drm/i915: Use the correct size of the GTT for placing the per-process entries + +From: Chris Wilson + +commit 9a0f938bde74bf9e50bd75c8de9e38c1787398cd upstream. + +The current layout is to place the per-process tables at the end of the +GTT. However, this is currently using a hardcoded maximum size for the GTT +and not taking in account limitations imposed by the BIOS. Use the value +for the total number of entries allocated in the table as provided by +the configuration registers. + +Reported-by: Matthew Garrett +Signed-off-by: Chris Wilson +Cc: Daniel Vetter +Cc: Ben Widawsky +Cc: Matthew Garret +Signed-off-by: Daniel Vetter +Cc: Jonathan Nieder +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/i915_gem_gtt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/gpu/drm/i915/i915_gem_gtt.c ++++ b/drivers/gpu/drm/i915/i915_gem_gtt.c +@@ -72,7 +72,7 @@ int i915_gem_init_aliasing_ppgtt(struct + /* ppgtt PDEs reside in the global gtt pagetable, which has 512*1024 + * entries. For aliasing ppgtt support we just steal them at the end for + * now. */ +- first_pd_entry_in_global_pt = 512*1024 - I915_PPGTT_PD_ENTRIES; ++ first_pd_entry_in_global_pt = dev_priv->mm.gtt->gtt_total_entries - I915_PPGTT_PD_ENTRIES; + + ppgtt = kzalloc(sizeof(*ppgtt), GFP_KERNEL); + if (!ppgtt) diff --git a/queue-3.4/pm-reboot-call-syscore_shutdown-after-disable_nonboot_cpus.patch b/queue-3.4/pm-reboot-call-syscore_shutdown-after-disable_nonboot_cpus.patch new file mode 100644 index 00000000000..46547c424af --- /dev/null +++ b/queue-3.4/pm-reboot-call-syscore_shutdown-after-disable_nonboot_cpus.patch @@ -0,0 +1,57 @@ +From 6f389a8f1dd22a24f3d9afc2812b30d639e94625 Mon Sep 17 00:00:00 2001 +From: Huacai Chen +Date: Sun, 7 Apr 2013 02:14:14 +0000 +Subject: PM / reboot: call syscore_shutdown() after disable_nonboot_cpus() + +From: Huacai Chen + +commit 6f389a8f1dd22a24f3d9afc2812b30d639e94625 upstream. + +As commit 40dc166c (PM / Core: Introduce struct syscore_ops for core +subsystems PM) say, syscore_ops operations should be carried with one +CPU on-line and interrupts disabled. However, after commit f96972f2d +(kernel/sys.c: call disable_nonboot_cpus() in kernel_restart()), +syscore_shutdown() is called before disable_nonboot_cpus(), so break +the rules. We have a MIPS machine with a 8259A PIC, and there is an +external timer (HPET) linked at 8259A. Since 8259A has been shutdown +too early (by syscore_shutdown()), disable_nonboot_cpus() runs without +timer interrupt, so it hangs and reboot fails. This patch call +syscore_shutdown() a little later (after disable_nonboot_cpus()) to +avoid reboot failure, this is the same way as poweroff does. + +For consistency, add disable_nonboot_cpus() to kernel_halt(). + +Signed-off-by: Huacai Chen +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/sys.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/kernel/sys.c ++++ b/kernel/sys.c +@@ -320,7 +320,6 @@ void kernel_restart_prepare(char *cmd) + system_state = SYSTEM_RESTART; + usermodehelper_disable(); + device_shutdown(); +- syscore_shutdown(); + } + + /** +@@ -366,6 +365,7 @@ void kernel_restart(char *cmd) + { + kernel_restart_prepare(cmd); + disable_nonboot_cpus(); ++ syscore_shutdown(); + if (!cmd) + printk(KERN_EMERG "Restarting system.\n"); + else +@@ -391,6 +391,7 @@ static void kernel_shutdown_prepare(enum + void kernel_halt(void) + { + kernel_shutdown_prepare(SYSTEM_HALT); ++ disable_nonboot_cpus(); + syscore_shutdown(); + printk(KERN_EMERG "System halted.\n"); + kmsg_dump(KMSG_DUMP_HALT); diff --git a/queue-3.4/series b/queue-3.4/series index b51adad3dde..55effd91edf 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -1 +1,5 @@ alsa-usb-audio-fix-endianness-bug-in-snd_nativeinstruments_.patch +asoc-wm8903-fix-the-bypass-to-hp-lineout-when-no-dac-or-adc-is-running.patch +tracing-fix-double-free-when-function-profile-init-failed.patch +pm-reboot-call-syscore_shutdown-after-disable_nonboot_cpus.patch +drm-i915-use-the-correct-size-of-the-gtt-for-placing-the-per-process-entries.patch diff --git a/queue-3.4/tracing-fix-double-free-when-function-profile-init-failed.patch b/queue-3.4/tracing-fix-double-free-when-function-profile-init-failed.patch new file mode 100644 index 00000000000..e94234ca520 --- /dev/null +++ b/queue-3.4/tracing-fix-double-free-when-function-profile-init-failed.patch @@ -0,0 +1,34 @@ +From 83e03b3fe4daffdebbb42151d5410d730ae50bd1 Mon Sep 17 00:00:00 2001 +From: Namhyung Kim +Date: Mon, 1 Apr 2013 21:46:23 +0900 +Subject: tracing: Fix double free when function profile init failed + +From: Namhyung Kim + +commit 83e03b3fe4daffdebbb42151d5410d730ae50bd1 upstream. + +On the failure path, stat->start and stat->pages will refer same page. +So it'll attempt to free the same page again and get kernel panic. + +Link: http://lkml.kernel.org/r/1364820385-32027-1-git-send-email-namhyung@kernel.org + +Signed-off-by: Namhyung Kim +Cc: Frederic Weisbecker +Cc: Namhyung Kim +Signed-off-by: Steven Rostedt +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/trace/ftrace.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/kernel/trace/ftrace.c ++++ b/kernel/trace/ftrace.c +@@ -642,7 +642,6 @@ int ftrace_profile_pages_init(struct ftr + free_page(tmp); + } + +- free_page((unsigned long)stat->pages); + stat->pages = NULL; + stat->start = NULL; +