Title: [8179] trunk/arch/blackfin: [!no_src_qa!]
Revision
8179
Author
adamliyi
Date
2010-01-18 23:35:28 -0500 (Mon, 18 Jan 2010)

Log Message

[!no_src_qa!]
Add irqsoff trace in assemble code.

Modified Paths


Diff

Modified: trunk/arch/blackfin/include/asm/context.S (8178 => 8179)


--- trunk/arch/blackfin/include/asm/context.S	2010-01-19 02:39:03 UTC (rev 8178)
+++ trunk/arch/blackfin/include/asm/context.S	2010-01-19 04:35:28 UTC (rev 8179)
@@ -4,6 +4,8 @@
  * Licensed under the GPL-2 or later.
  */
 
+#include <asm/irqflags.h>
+
 /*
  * NOTE!  The single-stepping code assumes that all interrupt handlers
  * start by saving SYSCFG on the stack with their first instruction.
@@ -73,6 +75,7 @@
 #else
 	cli r0;
 #endif
+	TRACE_IRQS_OFF
 	[--sp] = RETI;  /*orig_pc*/
 	/* Clear all L registers.  */
 	r0 = 0 (x);
@@ -289,6 +292,7 @@
 	p0.l = _bfin_irq_flags;
 	r0 = [p0];
 #endif
+	TRACE_IRQS_ON
 	sti r0;
 
 	sp += 4;	/* Skip Reserved */

Modified: trunk/arch/blackfin/include/asm/irqflags.h (8178 => 8179)


--- trunk/arch/blackfin/include/asm/irqflags.h	2010-01-19 02:39:03 UTC (rev 8178)
+++ trunk/arch/blackfin/include/asm/irqflags.h	2010-01-19 04:35:28 UTC (rev 8179)
@@ -8,6 +8,8 @@
 #ifndef __ASM_BFIN_IRQFLAGS_H__
 #define __ASM_BFIN_IRQFLAGS_H__
 
+#ifndef __ASSEMBLY__
+
 #include <mach/blackfin.h>
 
 #ifdef CONFIG_SMP
@@ -217,4 +219,37 @@
 		raw_local_irq_enable();
 }
 
+#else /* __ASSEMBLY__ */
+
+#ifdef CONFIG_TRACE_IRQFLAGS
+
+.macro bfin_trace_hardirqs_on
+	[--sp] = rets;
+	[--sp] = (r7:0, p5:0);
+	sp += -12;
+	call _trace_hardirqs_on;
+	sp += 12;
+	(r7:0, p5:0) = [sp++];
+	rets = [sp++];
+.endm
+
+.macro bfin_trace_hardirqs_off
+	[--sp] = rets;
+	[--sp] = (r7:0, p5:0);
+	sp += -12;
+	call _trace_hardirqs_off;
+	sp += 12;
+	(r7:0, p5:0) = [sp++];
+	rets = [sp++];
+.endm
+
+#  define TRACE_IRQS_ON 	bfin_trace_hardirqs_on
+#  define TRACE_IRQS_OFF	bfin_trace_hardirqs_off
+#else
+#  define TRACE_IRQS_ON
+#  define TRACE_IRQS_OFF
 #endif
+
+#endif /* __ASSEMBLY__ */
+
+#endif

Modified: trunk/arch/blackfin/mach-common/entry.S (8178 => 8179)


--- trunk/arch/blackfin/mach-common/entry.S	2010-01-19 02:39:03 UTC (rev 8178)
+++ trunk/arch/blackfin/mach-common/entry.S	2010-01-19 04:35:28 UTC (rev 8179)
@@ -966,6 +966,7 @@
 #else
 	cli r0;
 #endif
+	TRACE_IRQS_OFF
 	[--sp] = RETI;
 	SP += 4;
 	rts;
@@ -997,6 +998,7 @@
 	p0.h = _bfin_irq_flags;
 	r0 = [p0];
 #endif
+	TRACE_IRQS_ON
 	sti r0;
 
 	/* finish the userspace "atomic" functions for it */

Modified: trunk/arch/blackfin/mach-common/interrupt.S (8178 => 8179)


--- trunk/arch/blackfin/mach-common/interrupt.S	2010-01-19 02:39:03 UTC (rev 8178)
+++ trunk/arch/blackfin/mach-common/interrupt.S	2010-01-19 04:35:28 UTC (rev 8179)
@@ -88,6 +88,7 @@
 #else
 	cli r1;
 #endif
+	TRACE_IRQS_OFF
 	[--sp] = RETI;  /* orig_pc */
 	/* Clear all L registers.  */
 	r1 = 0 (x);
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to