summaryrefslogtreecommitdiff
path: root/arch/arm/mm/context.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2009-10-24 21:36:36 (GMT)
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-10-29 19:13:09 (GMT)
commitdf71dfd4ca01130f98d9dbfab76c440d72a177c6 (patch)
tree5050d23a67be5fc5fabd4e6d96ac89786fb2a9c9 /arch/arm/mm/context.c
parent657e12fd388899502d47f9f6f9d276ec9ced8add (diff)
downloadlinux-fsl-qoriq-df71dfd4ca01130f98d9dbfab76c440d72a177c6.tar.xz
ARM: Fix errata 411920 workarounds
Errata 411920 indicates that any "invalidate entire instruction cache" operation can fail if the right conditions are present. This is not limited just to those operations in flush.c, but elsewhere. Place the workaround in the already existing __flush_icache_all() function instead. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/context.c')
-rw-r--r--arch/arm/mm/context.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
index 6bda76a..a9e22e3 100644
--- a/arch/arm/mm/context.c
+++ b/arch/arm/mm/context.c
@@ -50,10 +50,7 @@ void __new_context(struct mm_struct *mm)
isb();
flush_tlb_all();
if (icache_is_vivt_asid_tagged()) {
- asm("mcr p15, 0, %0, c7, c5, 0 @ invalidate I-cache\n"
- "mcr p15, 0, %0, c7, c5, 6 @ flush BTAC/BTB\n"
- :
- : "r" (0));
+ __flush_icache_all();
dsb();
}
}