aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/kernel/entry-armv.S10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index c46bafa2f6dc..920dd3d07957 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -268,6 +268,10 @@ __und_svc:
268 svc_entry 268 svc_entry
269#endif 269#endif
270 270
271#ifdef CONFIG_TRACE_IRQFLAGS
272 bl trace_hardirqs_off
273#endif
274
271 @ 275 @
272 @ call emulation code, which returns using r9 if it has emulated 276 @ call emulation code, which returns using r9 if it has emulated
273 @ the instruction, or the more conventional lr if we are to treat 277 @ the instruction, or the more conventional lr if we are to treat
@@ -300,6 +304,12 @@ __und_svc:
300 @ restore SPSR and restart the instruction 304 @ restore SPSR and restart the instruction
301 @ 305 @
302 ldr r5, [sp, #S_PSR] @ Get SVC cpsr 306 ldr r5, [sp, #S_PSR] @ Get SVC cpsr
307#ifdef CONFIG_TRACE_IRQFLAGS
308 tst r5, #PSR_I_BIT
309 bleq trace_hardirqs_on
310 tst r5, #PSR_I_BIT
311 blne trace_hardirqs_off
312#endif
303 svc_exit r5 @ return from exception 313 svc_exit r5 @ return from exception
304 UNWIND(.fnend ) 314 UNWIND(.fnend )
305ENDPROC(__und_svc) 315ENDPROC(__und_svc)