The SVC IRQ, prefetch and data abort handlers preserve the SPSR value
via r5 across the exception.  Rather than re-loading it from pt_regs,
use the preserved value instead.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        @
        disable_irq_notrace
 
-       @
-       @ restore SPSR and restart the instruction
-       @
-       ldr     r5, [sp, #S_PSR]
 #ifdef CONFIG_TRACE_IRQFLAGS
        tst     r5, #PSR_I_BIT
        bleq    trace_hardirqs_on
        tst     r0, #_TIF_NEED_RESCHED
        blne    svc_preempt
 #endif
-       ldr     r5, [sp, #S_PSR]
+
 #ifdef CONFIG_TRACE_IRQFLAGS
        @ The parent context IRQs must have been enabled to get here in
        @ the first place, so there's no point checking the PSR I bit.
        @
        disable_irq_notrace
 
-       @
-       @ restore SPSR and restart the instruction
-       @
-       ldr     r5, [sp, #S_PSR]
 #ifdef CONFIG_TRACE_IRQFLAGS
        tst     r5, #PSR_I_BIT
        bleq    trace_hardirqs_on