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