aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-common
diff options
context:
space:
mode:
authorYi Li <yi.li@analog.com>2010-01-18 23:35:28 -0500
committerMike Frysinger <vapier@gentoo.org>2010-03-09 00:30:49 -0500
commit441504df6b81302c06010083c8d63b1465ead405 (patch)
treeccf92436418cb23f5d5d7d55a9af027885f4e022 /arch/blackfin/mach-common
parent5aff1642aee0fe3cb9be7339fcc09dd2bd1976f0 (diff)
Blackfin: add support for irqflags tracing
Signed-off-by: Yi Li <yi.li@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/mach-common')
-rw-r--r--arch/blackfin/mach-common/entry.S15
-rw-r--r--arch/blackfin/mach-common/interrupt.S7
2 files changed, 22 insertions, 0 deletions
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index ccfa7c490ff9..1fa414f7852f 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -966,6 +966,13 @@ ENTRY(_evt_evt14)
966#else 966#else
967 cli r0; 967 cli r0;
968#endif 968#endif
969#ifdef CONFIG_TRACE_IRQFLAGS
970 [--sp] = rets;
971 sp += -12;
972 call _trace_hardirqs_off;
973 sp += 12;
974 rets = [sp++];
975#endif
969 [--sp] = RETI; 976 [--sp] = RETI;
970 SP += 4; 977 SP += 4;
971 rts; 978 rts;
@@ -989,6 +996,14 @@ ENTRY(_schedule_and_signal_from_int)
989 p1 = rets; 996 p1 = rets;
990 [sp + PT_RESERVED] = p1; 997 [sp + PT_RESERVED] = p1;
991 998
999#ifdef CONFIG_TRACE_IRQFLAGS
1000 /* trace_hardirqs_on() checks if all irqs are disabled. But here IRQ 15
1001 * is turned on, so disable all irqs. */
1002 cli r0;
1003 sp += -12;
1004 call _trace_hardirqs_on;
1005 sp += 12;
1006#endif
992#ifdef CONFIG_SMP 1007#ifdef CONFIG_SMP
993 GET_PDA(p0, r0); /* Fetch current PDA (can't migrate to other CPU here) */ 1008 GET_PDA(p0, r0); /* Fetch current PDA (can't migrate to other CPU here) */
994 r0 = [p0 + PDA_IRQFLAGS]; 1009 r0 = [p0 + PDA_IRQFLAGS];
diff --git a/arch/blackfin/mach-common/interrupt.S b/arch/blackfin/mach-common/interrupt.S
index df984960cf90..0a0c088ead8c 100644
--- a/arch/blackfin/mach-common/interrupt.S
+++ b/arch/blackfin/mach-common/interrupt.S
@@ -88,6 +88,13 @@ __common_int_entry:
88#else 88#else
89 cli r1; 89 cli r1;
90#endif 90#endif
91#ifdef CONFIG_TRACE_IRQFLAGS
92 [--sp] = r0;
93 sp += -12;
94 call _trace_hardirqs_off;
95 sp += 12;
96 r0 = [sp++];
97#endif
91 [--sp] = RETI; /* orig_pc */ 98 [--sp] = RETI; /* orig_pc */
92 /* Clear all L registers. */ 99 /* Clear all L registers. */
93 r1 = 0 (x); 100 r1 = 0 (x);