diff options
author | Simon Horman <horms@verge.net.au> | 2012-09-27 21:12:45 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-09-28 16:11:49 -0400 |
commit | 7253b85cc62d6ff84143d96fe6cd54f73736f4d7 (patch) | |
tree | 9950244b1b69fa27bee5ebcded6ff3ca49b4a28b /arch/arm/mm/cache-v7.S | |
parent | 63994137eb53bb0fc42ad180c0ce509d3eb3bdc9 (diff) |
ARM: 7541/1: Add ARM ERRATA 775420 workaround
arm: Add ARM ERRATA 775420 workaround
Workaround for the 775420 Cortex-A9 (r2p2, r2p6,r2p8,r2p10,r3p0) erratum.
In case a date cache maintenance operation aborts with MMU exception, it
might cause the processor to deadlock. This workaround puts DSB before
executing ISB if an abort may occur on cache maintenance.
Based on work by Kouei Abe and feedback from Catalin Marinas.
Signed-off-by: Kouei Abe <kouei.abe.cp@rms.renesas.com>
[ horms@verge.net.au: Changed to implementation
suggested by catalin.marinas@arm.com ]
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/cache-v7.S')
-rw-r--r-- | arch/arm/mm/cache-v7.S | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S index 39e3fb3db801..3b172275262e 100644 --- a/arch/arm/mm/cache-v7.S +++ b/arch/arm/mm/cache-v7.S | |||
@@ -211,6 +211,9 @@ ENTRY(v7_coherent_user_range) | |||
211 | * isn't mapped, fail with -EFAULT. | 211 | * isn't mapped, fail with -EFAULT. |
212 | */ | 212 | */ |
213 | 9001: | 213 | 9001: |
214 | #ifdef CONFIG_ARM_ERRATA_775420 | ||
215 | dsb | ||
216 | #endif | ||
214 | mov r0, #-EFAULT | 217 | mov r0, #-EFAULT |
215 | mov pc, lr | 218 | mov pc, lr |
216 | UNWIND(.fnend ) | 219 | UNWIND(.fnend ) |