ARM: 5991/1: Fix regression in restore_user_regs macro
authorAnders Grafström <grfstrm@users.sourceforge.net>
Mon, 15 Mar 2010 15:04:14 +0000 (16:04 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 15 Mar 2010 17:20:08 +0000 (17:20 +0000)
ARMv5T and earlier require that a ldm {}^ instruction is not followed
by an instruction that accesses banked registers. This patch restores
the nop that was lost in commit b86040a59feb255a8193173caa4d5199464433d5.

Signed-off-by: Anders Grafström <grfstrm@users.sourceforge.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/entry-header.S

index 7e9ed1eea40a63d3a72e898b46278ef38911c741..d93f976fb3893638900e8ff4660f1c6891a21457 100644 (file)
        .else
        ldmdb   sp, {r0 - lr}^                  @ get calling r0 - lr
        .endif
+       mov     r0, r0                          @ ARMv5T and earlier require a nop
+                                               @ after ldm {}^
        add     sp, sp, #S_FRAME_SIZE - S_PC
        movs    pc, lr                          @ return & move spsr_svc into cpsr
        .endm