]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/2.6.32.17/arm-6201-1-realview-do-not-use-outer_sync-on-arm11mpcore-boards-with-l220.patch
4.9-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 2.6.32.17 / arm-6201-1-realview-do-not-use-outer_sync-on-arm11mpcore-boards-with-l220.patch
CommitLineData
bcb3eca5
GKH
1From 2503a5ecd86c002506001eba432c524ea009fe7f Mon Sep 17 00:00:00 2001
2From: Catalin Marinas <catalin.marinas@arm.com>
3Date: Thu, 1 Jul 2010 13:21:47 +0100
4Subject: ARM: 6201/1: RealView: Do not use outer_sync() on ARM11MPCore boards with L220
5
6From: Catalin Marinas <catalin.marinas@arm.com>
7
8commit 2503a5ecd86c002506001eba432c524ea009fe7f upstream.
9
10RealView boards with certain revisions of the L220 cache controller (ARM11*
11processors only) may have issues (hardware deadlock) with the recent changes to
12the mb() barrier implementation (DSB followed by an L2 cache sync). The patch
13redefines the RealView ARM11MPCore mandatory barriers without the outer_sync()
14call.
15
16Tested-by: Linus Walleij <linus.walleij@stericsson.com>
17Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
18Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
20
21---
22 arch/arm/mach-realview/Kconfig | 2 ++
23 arch/arm/mach-realview/include/mach/barriers.h | 8 ++++++++
24 2 files changed, 10 insertions(+)
25
26--- a/arch/arm/mach-realview/Kconfig
27+++ b/arch/arm/mach-realview/Kconfig
28@@ -18,6 +18,7 @@ config REALVIEW_EB_ARM11MP
29 bool "Support ARM11MPCore tile"
30 depends on MACH_REALVIEW_EB
31 select CPU_V6
32+ select ARCH_HAS_BARRIERS if SMP
33 help
34 Enable support for the ARM11MPCore tile on the Realview platform.
35
36@@ -35,6 +36,7 @@ config MACH_REALVIEW_PB11MP
37 select CPU_V6
38 select ARM_GIC
39 select HAVE_PATA_PLATFORM
40+ select ARCH_HAS_BARRIERS if SMP
41 help
42 Include support for the ARM(R) RealView MPCore Platform Baseboard.
43 PB11MPCore is a platform with an on-board ARM11MPCore and has
44--- /dev/null
45+++ b/arch/arm/mach-realview/include/mach/barriers.h
46@@ -0,0 +1,8 @@
47+/*
48+ * Barriers redefined for RealView ARM11MPCore platforms with L220 cache
49+ * controller to work around hardware errata causing the outer_sync()
50+ * operation to deadlock the system.
51+ */
52+#define mb() dsb()
53+#define rmb() dmb()
54+#define wmb() mb()