From: Greg Kroah-Hartman Date: Thu, 23 Jan 2014 18:17:37 +0000 (-0800) Subject: 3.12-stable patches X-Git-Tag: v3.10.28~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=558bc60fab29bf60eec5d9f9503cc1b79b166e0d;p=thirdparty%2Fkernel%2Fstable-queue.git 3.12-stable patches added patches: arm-7938-1-omap4-highbank-flush-l2-cache-before-disabling.patch drm-i915-don-t-grab-crtc-mutexes-in-intel_modeset_gem_init.patch --- diff --git a/queue-3.12/arm-7938-1-omap4-highbank-flush-l2-cache-before-disabling.patch b/queue-3.12/arm-7938-1-omap4-highbank-flush-l2-cache-before-disabling.patch new file mode 100644 index 00000000000..d9ec1e7c958 --- /dev/null +++ b/queue-3.12/arm-7938-1-omap4-highbank-flush-l2-cache-before-disabling.patch @@ -0,0 +1,51 @@ +From b25f3e1c358434bf850220e04f28eebfc45eb634 Mon Sep 17 00:00:00 2001 +From: Taras Kondratiuk +Date: Fri, 10 Jan 2014 01:27:08 +0100 +Subject: ARM: 7938/1: OMAP4/highbank: Flush L2 cache before disabling + +From: Taras Kondratiuk + +commit b25f3e1c358434bf850220e04f28eebfc45eb634 upstream. + +Kexec disables outer cache before jumping to reboot code, but it doesn't +flush it explicitly. Flush is done implicitly inside of l2x0_disable(). +But some SoC's override default .disable handler and don't flush cache. +This may lead to a corrupted memory during Kexec reboot on these +platforms. + +This patch adds cache flush inside of OMAP4 and Highbank outer_cache.disable() +handlers to make it consistent with default l2x0_disable(). + +Acked-by: Rob Herring +Acked-by: Santosh Shilimkar +Acked-by: Tony Lindgren +Signed-off-by: Taras Kondratiuk +Signed-off-by: Russell King +Cc: Wang Nan +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/mach-highbank/highbank.c | 1 + + arch/arm/mach-omap2/omap4-common.c | 1 + + 2 files changed, 2 insertions(+) + +--- a/arch/arm/mach-highbank/highbank.c ++++ b/arch/arm/mach-highbank/highbank.c +@@ -66,6 +66,7 @@ void highbank_set_cpu_jump(int cpu, void + + static void highbank_l2x0_disable(void) + { ++ outer_flush_all(); + /* Disable PL310 L2 Cache controller */ + highbank_smc1(0x102, 0x0); + } +--- a/arch/arm/mach-omap2/omap4-common.c ++++ b/arch/arm/mach-omap2/omap4-common.c +@@ -163,6 +163,7 @@ void __iomem *omap4_get_l2cache_base(voi + + static void omap4_l2x0_disable(void) + { ++ outer_flush_all(); + /* Disable PL310 L2 Cache controller */ + omap_smc1(0x102, 0x0); + } diff --git a/queue-3.12/drm-i915-don-t-grab-crtc-mutexes-in-intel_modeset_gem_init.patch b/queue-3.12/drm-i915-don-t-grab-crtc-mutexes-in-intel_modeset_gem_init.patch new file mode 100644 index 00000000000..1fae58550b2 --- /dev/null +++ b/queue-3.12/drm-i915-don-t-grab-crtc-mutexes-in-intel_modeset_gem_init.patch @@ -0,0 +1,51 @@ +From 7ad228b11ec26a820291c9f5a1168d6176580dc1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= +Date: Tue, 7 Jan 2014 16:15:36 +0200 +Subject: drm/i915: Don't grab crtc mutexes in intel_modeset_gem_init() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Ville Syrjälä + +commit 7ad228b11ec26a820291c9f5a1168d6176580dc1 upstream. + +When the pipe A force quirk is applied the code will attempt to grab +a crtc mutex during intel_modeset_setup_hw_state(). If we're already +holding all crtc mutexes this will obviously deadlock every time. + +So instead of using drm_modeset_lock_all() just grab the +mode_config.mutex. This is enough to avoid the unlocked mutex warnings +from certain lower level functions. + +The regression was introduced in: + + commit 027476642811f8559cbe00ef6cc54db230e48a20 + Author: Ville Syrjälä + Date: Mon Dec 2 11:08:06 2013 +0200 + + drm/i915: Take modeset locks around intel_modeset_setup_hw_state() + +Signed-off-by: Ville Syrjälä +[danvet: Add cc: stable since the offending commit has that, too.] +Signed-off-by: Daniel Vetter +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/intel_display.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -10592,9 +10592,9 @@ void intel_modeset_gem_init(struct drm_d + + intel_setup_overlay(dev); + +- drm_modeset_lock_all(dev); ++ mutex_lock(&dev->mode_config.mutex); + intel_modeset_setup_hw_state(dev, false); +- drm_modeset_unlock_all(dev); ++ mutex_unlock(&dev->mode_config.mutex); + } + + void intel_modeset_cleanup(struct drm_device *dev) diff --git a/queue-3.12/series b/queue-3.12/series index 26d8c65155f..cd79ece24e1 100644 --- a/queue-3.12/series +++ b/queue-3.12/series @@ -23,3 +23,5 @@ md-raid5-fix-possible-confusion-when-multiple-write-errors-occur.patch mm-make-set-page_address-static-inline-if-want_page_virtual.patch serial-amba-pl011-use-port-lock-to-guard-control-register-access.patch arm-7934-1-dt-kernel-fix-arch_match_cpu_phys_id-to-avoid-erroneous-match.patch +drm-i915-don-t-grab-crtc-mutexes-in-intel_modeset_gem_init.patch +arm-7938-1-omap4-highbank-flush-l2-cache-before-disabling.patch