make Linux bootable on ARM again
authorNicolas Pitre <nico@fluxnic.net>
Fri, 25 Sep 2009 20:28:02 +0000 (16:28 -0400)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 26 Sep 2009 17:06:53 +0000 (10:06 -0700)
Commit 200b812d00 "Clear the exclusive monitor when returning from an
exception" broke the vast majority of ARM systems in the wild which are
still pre ARMv6.  The kernel is crashing on the first occurrence of an
exception due to the removal of the actual return instruction for them.
Let's add it back.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Acked-by: Uwe Kleine-K├Ânig <u.kleine-koenig@pengutronix.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/arm/kernel/entry-header.S

index e17e3c30d957ca3a2c32bbc6c91ff626df14151c..ac34c0d9384b000c39eec3f63763756f086ee8a7 100644 (file)
@@ -83,6 +83,8 @@
        ldr     r0, [sp]
        strex   r1, r2, [sp]                    @ clear the exclusive monitor
        ldmib   sp, {r1 - pc}^                  @ load r1 - pc, cpsr
+#else
+       ldmia   sp, {r0 - pc}^                  @ load r0 - pc, cpsr
 #endif
        .endm