diff options
author | Nicolas Pitre <nico@fluxnic.net> | 2009-09-25 16:28:02 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-26 13:06:53 -0400 |
commit | 9e6ec39becb02bda776eebf12c0677910d54b848 (patch) | |
tree | e94d071dd43eb203ff250989b63d730b5ac1840c /arch/arm | |
parent | 6d7f18f6ea3a13af95bdf507fc54d42b165e1712 (diff) |
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/arm')
-rw-r--r-- | arch/arm/kernel/entry-header.S | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S index e17e3c30d957..ac34c0d9384b 100644 --- a/arch/arm/kernel/entry-header.S +++ b/arch/arm/kernel/entry-header.S | |||
@@ -83,6 +83,8 @@ | |||
83 | ldr r0, [sp] | 83 | ldr r0, [sp] |
84 | strex r1, r2, [sp] @ clear the exclusive monitor | 84 | strex r1, r2, [sp] @ clear the exclusive monitor |
85 | ldmib sp, {r1 - pc}^ @ load r1 - pc, cpsr | 85 | ldmib sp, {r1 - pc}^ @ load r1 - pc, cpsr |
86 | #else | ||
87 | ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr | ||
86 | #endif | 88 | #endif |
87 | .endm | 89 | .endm |
88 | 90 | ||