diff options
Diffstat (limited to 'arch/arm/mm/cache-v7.S')
-rw-r--r-- | arch/arm/mm/cache-v7.S | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S index bcd64f265870..37c8157e116e 100644 --- a/arch/arm/mm/cache-v7.S +++ b/arch/arm/mm/cache-v7.S | |||
@@ -91,7 +91,11 @@ ENTRY(v7_flush_kern_cache_all) | |||
91 | THUMB( stmfd sp!, {r4-r7, r9-r11, lr} ) | 91 | THUMB( stmfd sp!, {r4-r7, r9-r11, lr} ) |
92 | bl v7_flush_dcache_all | 92 | bl v7_flush_dcache_all |
93 | mov r0, #0 | 93 | mov r0, #0 |
94 | #ifdef CONFIG_SMP | ||
95 | mcr p15, 0, r0, c7, c1, 0 @ invalidate I-cache inner shareable | ||
96 | #else | ||
94 | mcr p15, 0, r0, c7, c5, 0 @ I+BTB cache invalidate | 97 | mcr p15, 0, r0, c7, c5, 0 @ I+BTB cache invalidate |
98 | #endif | ||
95 | ARM( ldmfd sp!, {r4-r5, r7, r9-r11, lr} ) | 99 | ARM( ldmfd sp!, {r4-r5, r7, r9-r11, lr} ) |
96 | THUMB( ldmfd sp!, {r4-r7, r9-r11, lr} ) | 100 | THUMB( ldmfd sp!, {r4-r7, r9-r11, lr} ) |
97 | mov pc, lr | 101 | mov pc, lr |
@@ -167,7 +171,11 @@ ENTRY(v7_coherent_user_range) | |||
167 | cmp r0, r1 | 171 | cmp r0, r1 |
168 | blo 1b | 172 | blo 1b |
169 | mov r0, #0 | 173 | mov r0, #0 |
174 | #ifdef CONFIG_SMP | ||
175 | mcr p15, 0, r0, c7, c1, 6 @ invalidate BTB Inner Shareable | ||
176 | #else | ||
170 | mcr p15, 0, r0, c7, c5, 6 @ invalidate BTB | 177 | mcr p15, 0, r0, c7, c5, 6 @ invalidate BTB |
178 | #endif | ||
171 | dsb | 179 | dsb |
172 | isb | 180 | isb |
173 | mov pc, lr | 181 | mov pc, lr |