Переглянути джерело

ARM: entry: consolidate trace_hardirqs_off into (svc|usr)_entry macros

All handlers now call trace_hardirqs_off, so move this common code into
the (svc|usr)_entry assembler macros.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Russell King 14 роки тому
батько
коміт
f2741b78b6
1 змінених файлів з 8 додано та 39 видалено
  1. 8 39
      arch/arm/kernel/entry-armv.S

+ 8 - 39
arch/arm/kernel/entry-armv.S

@@ -179,16 +179,15 @@ ENDPROC(__und_invalid)
 	@  r6 - orig_r0 (see pt_regs definition in ptrace.h)
 	@  r6 - orig_r0 (see pt_regs definition in ptrace.h)
 	@
 	@
 	stmia	r7, {r2 - r6}
 	stmia	r7, {r2 - r6}
-	.endm
-
-	.align	5
-__dabt_svc:
-	svc_entry
 
 
 #ifdef CONFIG_TRACE_IRQFLAGS
 #ifdef CONFIG_TRACE_IRQFLAGS
 	bl	trace_hardirqs_off
 	bl	trace_hardirqs_off
 #endif
 #endif
+	.endm
 
 
+	.align	5
+__dabt_svc:
+	svc_entry
 	dabt_helper
 	dabt_helper
 
 
 	@
 	@
@@ -219,11 +218,6 @@ ENDPROC(__dabt_svc)
 	.align	5
 	.align	5
 __irq_svc:
 __irq_svc:
 	svc_entry
 	svc_entry
-
-#ifdef CONFIG_TRACE_IRQFLAGS
-	bl	trace_hardirqs_off
-#endif
-
 	irq_handler
 	irq_handler
 
 
 #ifdef CONFIG_PREEMPT
 #ifdef CONFIG_PREEMPT
@@ -267,11 +261,6 @@ __und_svc:
 #else
 #else
 	svc_entry
 	svc_entry
 #endif
 #endif
-
-#ifdef CONFIG_TRACE_IRQFLAGS
-	bl	trace_hardirqs_off
-#endif
-
 	@
 	@
 	@ call emulation code, which returns using r9 if it has emulated
 	@ call emulation code, which returns using r9 if it has emulated
 	@ the instruction, or the more conventional lr if we are to treat
 	@ the instruction, or the more conventional lr if we are to treat
@@ -317,11 +306,6 @@ ENDPROC(__und_svc)
 	.align	5
 	.align	5
 __pabt_svc:
 __pabt_svc:
 	svc_entry
 	svc_entry
-
-#ifdef CONFIG_TRACE_IRQFLAGS
-	bl	trace_hardirqs_off
-#endif
-
 	pabt_helper
 	pabt_helper
 	mov	r2, sp				@ regs
 	mov	r2, sp				@ regs
 	bl	do_PrefetchAbort		@ call abort handler
 	bl	do_PrefetchAbort		@ call abort handler
@@ -401,6 +385,10 @@ ENDPROC(__pabt_svc)
 	@ Clear FP to mark the first stack frame
 	@ Clear FP to mark the first stack frame
 	@
 	@
 	zero_fp
 	zero_fp
+
+#ifdef CONFIG_IRQSOFF_TRACER
+	bl	trace_hardirqs_off
+#endif
 	.endm
 	.endm
 
 
 	.macro	kuser_cmpxchg_check
 	.macro	kuser_cmpxchg_check
@@ -421,11 +409,6 @@ ENDPROC(__pabt_svc)
 	.align	5
 	.align	5
 __dabt_usr:
 __dabt_usr:
 	usr_entry
 	usr_entry
-
-#ifdef CONFIG_IRQSOFF_TRACER
-	bl	trace_hardirqs_off
-#endif
-
 	kuser_cmpxchg_check
 	kuser_cmpxchg_check
 	dabt_helper
 	dabt_helper
 
 
@@ -438,11 +421,6 @@ ENDPROC(__dabt_usr)
 	.align	5
 	.align	5
 __irq_usr:
 __irq_usr:
 	usr_entry
 	usr_entry
-
-#ifdef CONFIG_IRQSOFF_TRACER
-	bl	trace_hardirqs_off
-#endif
-
 	kuser_cmpxchg_check
 	kuser_cmpxchg_check
 	irq_handler
 	irq_handler
 	get_thread_info tsk
 	get_thread_info tsk
@@ -457,10 +435,6 @@ ENDPROC(__irq_usr)
 __und_usr:
 __und_usr:
 	usr_entry
 	usr_entry
 
 
-#ifdef CONFIG_IRQSOFF_TRACER
-	bl	trace_hardirqs_off
-#endif
-
 	mov	r2, r4
 	mov	r2, r4
 	mov	r3, r5
 	mov	r3, r5
 
 
@@ -679,11 +653,6 @@ ENDPROC(__und_usr_unknown)
 	.align	5
 	.align	5
 __pabt_usr:
 __pabt_usr:
 	usr_entry
 	usr_entry
-
-#ifdef CONFIG_IRQSOFF_TRACER
-	bl	trace_hardirqs_off
-#endif
-
 	pabt_helper
 	pabt_helper
 	mov	r2, sp				@ regs
 	mov	r2, sp				@ regs
 	bl	do_PrefetchAbort		@ call abort handler
 	bl	do_PrefetchAbort		@ call abort handler