From: Tony Lindgren Date: Mon, 30 Aug 2010 13:52:52 -0700 Subject: [PATCH] ARM: Fix smp_on_up to not trash r1 and r2 We need to preserve r1 and r2 for __mmap_switched. So use r3, r6, r7 instead of r1, r2, r3. We can trash r3, r6, r7 as they get corrupted in __create_page_tables anyways. Signed-off-by: Tony Lindgren --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S @@ -353,14 +353,14 @@ __fixup_smp: smp_on_up: adr r0, 1f - ldmia r0, {r1, r2, r3} - sub r1, r0, r1 - add r2, r2, r1 - add r3, r3, r1 -2: cmp r2, r3 - ldmia r2!, {r0, r4} + ldmia r0, {r3, r6, r7} + sub r3, r0, r3 + add r6, r6, r3 + add r7, r7, r3 +2: cmp r6, r7 + ldmia r6!, {r0, r4} movhs pc, lr - str r4, [r0, r1] + str r4, [r0, r3] b 2b ENDPROC(__fixup_smp)