summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorNicolas Pitre <nico@fluxnic.net>2009-09-25 16:28:02 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-26 10:06:53 -0700
commit9e6ec39becb02bda776eebf12c0677910d54b848 (patch)
treee94d071dd43eb203ff250989b63d730b5ac1840c /arch
parent6d7f18f6ea3a13af95bdf507fc54d42b165e1712 (diff)
downloadlinux-3.10-9e6ec39becb02bda776eebf12c0677910d54b848.tar.gz
linux-3.10-9e6ec39becb02bda776eebf12c0677910d54b848.tar.bz2
linux-3.10-9e6ec39becb02bda776eebf12c0677910d54b848.zip
make Linux bootable on ARM again
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/kernel/entry-header.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
index e17e3c30d95..ac34c0d9384 100644
--- a/arch/arm/kernel/entry-header.S
+++ b/arch/arm/kernel/entry-header.S
@@ -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