[ARM] 2940/1: Fix BTB entry flush in arch/arm/mm/cache-v6.S

Patch from Gen FUKATSU

Invalidate BTB entry instruction flushes two instruction
at a time. Therefore this instruction should be done four
times after invalidate instruction cache line.

Signed-off-by: Gen Fukatsu
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by Gen FUKATSU and committed by Russell King 217874fe a06f5466

+8 -1
+8 -1
arch/arm/mm/cache-v6.S
··· 18 18 #define HARVARD_CACHE 19 19 #define CACHE_LINE_SIZE 32 20 20 #define D_CACHE_LINE_SIZE 32 21 + #define BTB_FLUSH_SIZE 8 21 22 22 23 /* 23 24 * v6_flush_cache_all() ··· 99 98 mcr p15, 0, r0, c7, c5, 1 @ invalidate I line 100 99 #endif 101 100 mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry 102 - add r0, r0, #CACHE_LINE_SIZE 101 + add r0, r0, #BTB_FLUSH_SIZE 102 + mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry 103 + add r0, r0, #BTB_FLUSH_SIZE 104 + mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry 105 + add r0, r0, #BTB_FLUSH_SIZE 106 + mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry 107 + add r0, r0, #BTB_FLUSH_SIZE 103 108 cmp r0, r1 104 109 blo 1b 105 110 #ifdef HARVARD_CACHE