The ARMv7 processor setup functions clean and invalidates the cpu cache before enabling MMU. The intention here is to start with clean CPU local cache. But on architectures like Cortex-[A15/A8], this code will end up flushing the L2 cache as well which undesirable and incorrect. The setup functions are used in CPU hotplug scenario's too and hence flushing all cache levels should be avoided. Fix this code by restricting the cache flush to local cpu cache or L1. Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxx> Cc: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx> --- arch/arm/mm/proc-v7.S | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index f1c8486..96cfc31 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S @@ -172,7 +172,8 @@ __v7_ca15mp_setup: __v7_setup: adr r12, __v7_setup_stack @ the local stack stmia r12, {r0-r5, r7, r9, r11, lr} - bl v7_flush_dcache_all + mov r0, #0x1 + bl v7_flush_dcache_by_level ldmia r12, {r0-r5, r7, r9, r11, lr} mrc p15, 0, r0, c0, c0, 0 @ read main ID register -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html