Skip to content

Commit

Permalink
Blackfin: add support for irqflags tracing
Browse files Browse the repository at this point in the history
Signed-off-by: Yi Li <yi.li@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
  • Loading branch information
Yi Li authored and Mike Frysinger committed Mar 9, 2010
1 parent 5aff164 commit 441504d
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 0 deletions.
12 changes: 12 additions & 0 deletions arch/blackfin/include/asm/context.S
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@
sti r0;
#else
cli r0;
#endif
#ifdef CONFIG_TRACE_IRQFLAGS
sp += -12;
call _trace_hardirqs_off;
sp += 12;
#endif
[--sp] = RETI; /*orig_pc*/
/* Clear all L registers. */
Expand Down Expand Up @@ -279,6 +284,13 @@
RETN = [sp++];
RETX = [sp++];
RETI = [sp++];

#ifdef CONFIG_TRACE_IRQFLAGS
sp += -12;
call _trace_hardirqs_on;
sp += 12;
#endif

RETS = [sp++];

#ifdef CONFIG_SMP
Expand Down
15 changes: 15 additions & 0 deletions arch/blackfin/mach-common/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -965,6 +965,13 @@ ENTRY(_evt_evt14)
sti r0;
#else
cli r0;
#endif
#ifdef CONFIG_TRACE_IRQFLAGS
[--sp] = rets;
sp += -12;
call _trace_hardirqs_off;
sp += 12;
rets = [sp++];
#endif
[--sp] = RETI;
SP += 4;
Expand All @@ -989,6 +996,14 @@ ENTRY(_schedule_and_signal_from_int)
p1 = rets;
[sp + PT_RESERVED] = p1;

#ifdef CONFIG_TRACE_IRQFLAGS
/* trace_hardirqs_on() checks if all irqs are disabled. But here IRQ 15
* is turned on, so disable all irqs. */
cli r0;
sp += -12;
call _trace_hardirqs_on;
sp += 12;
#endif
#ifdef CONFIG_SMP
GET_PDA(p0, r0); /* Fetch current PDA (can't migrate to other CPU here) */
r0 = [p0 + PDA_IRQFLAGS];
Expand Down
7 changes: 7 additions & 0 deletions arch/blackfin/mach-common/interrupt.S
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,13 @@ __common_int_entry:
sti r1;
#else
cli r1;
#endif
#ifdef CONFIG_TRACE_IRQFLAGS
[--sp] = r0;
sp += -12;
call _trace_hardirqs_off;
sp += 12;
r0 = [sp++];
#endif
[--sp] = RETI; /* orig_pc */
/* Clear all L registers. */
Expand Down

0 comments on commit 441504d

Please sign in to comment.