diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index 28c9d32fa99a5..3e77e8982df3e 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S @@ -287,6 +287,8 @@ __v7_ca17mp_setup: mov r10, #0 1: adr r0, __v7_setup_stack_ptr ldr r12, [r0] + tst r12, #0x1f + addeq r12, r12, #4 add r12, r12, r0 @ the local stack stmia r12, {r1-r6, lr} @ v7_invalidate_l1 touches r0-r6 bl v7_invalidate_l1 @@ -474,6 +476,8 @@ __v7_setup: adr r0, __v7_setup_stack_ptr ldr r12, [r0] add r12, r12, r0 @ the local stack + tst r12, #0x1f + addeq r12, r12, #4 stmia r12, {r1-r6, lr} @ v7_invalidate_l1 touches r0-r6 bl v7_invalidate_l1 ldmia r12, {r1-r6, lr} @@ -557,7 +561,7 @@ ENDPROC(__v7_setup) .bss .align 2 __v7_setup_stack: - .space 4 * 7 @ 7 registers + .space 4 * 8 @ 7 registers + 1 spare __INITDATA