diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-06-26 10:34:02 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-07-02 10:56:10 +0100 |
commit | d9600c99c549732a501cb727157800623a06175d (patch) | |
tree | 6bddb70d57fc29b83b63b6036de2750ed51503eb /arch/arm/kernel/entry-armv.S | |
parent | f2741b78b607576f0c256604cb3d9256b3428a32 (diff) | |
download | talos-op-linux-d9600c99c549732a501cb727157800623a06175d.tar.gz talos-op-linux-d9600c99c549732a501cb727157800623a06175d.zip |
ARM: entry: re-allocate registers in irq entry assembly macros
This avoids the irq entry assembly corrupting r5, thereby allowing it
to be preserved through to the svc exit code.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/entry-armv.S')
-rw-r--r-- | arch/arm/kernel/entry-armv.S | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index a5b2c40d44e8..b17e57949d3b 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S @@ -29,16 +29,16 @@ #include <asm/entry-macro-multi.S> /* - * Interrupt handling. Preserves r7, r8, r9 + * Interrupt handling. */ .macro irq_handler #ifdef CONFIG_MULTI_IRQ_HANDLER - ldr r5, =handle_arch_irq + ldr r1, =handle_arch_irq mov r0, sp - ldr r5, [r5] + ldr r1, [r1] adr lr, BSYM(9997f) - teq r5, #0 - movne pc, r5 + teq r1, #0 + movne pc, r1 #endif arch_irq_handler_default 9997: |