aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/cpu/sh3
diff options
context:
space:
mode:
authorMatt Fleming <matt@console-pimps.org>2009-08-17 22:35:09 -0400
committerPaul Mundt <lethal@linux-sh.org>2009-08-17 22:35:09 -0400
commitf3a8308864f920d2babe76921733d76ec4a11fb8 (patch)
tree3dd604503b020d0aee42f18d4e3d8d9f0667d06e /arch/sh/kernel/cpu/sh3
parent63cd91dfd4976cb9687b07e9a9864912631d2e08 (diff)
sh: Add a few missing irqflags tracing markers.
save_regs contains an SR modification without an irqflags annotation, which resulted in a missing TRACE_IRQS_OFF in the interrupt exception path on SH-3/SH4. I've also moved the TRACE_IRQS_OFF/ON annotation when returning from the interrupt to just before we call __restore_all. This seems like the most logical place to put this because the annotation is for when we restore the SR register so we should delay the annotation until as last as possible. We were also missing a TRACE_IRQS_OFF in resume_kernel when CONFIG_PREEMPT is enabled. The end result is that this fixes up the lockdep engine debugging support with CONFIG_PREEMPT enabled on all SH-3/4 parts. Signed-off-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/cpu/sh3')
-rw-r--r--arch/sh/kernel/cpu/sh3/entry.S8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/sh/kernel/cpu/sh3/entry.S b/arch/sh/kernel/cpu/sh3/entry.S
index 67ad6467c694..272636ec5c98 100644
--- a/arch/sh/kernel/cpu/sh3/entry.S
+++ b/arch/sh/kernel/cpu/sh3/entry.S
@@ -508,6 +508,14 @@ ENTRY(handle_interrupt)
508 bsr save_regs ! needs original pr value in k3 508 bsr save_regs ! needs original pr value in k3
509 mov #-1, k2 ! default vector kept in k2 509 mov #-1, k2 ! default vector kept in k2
510 510
511 stc sr, r0 ! get status register
512 shlr2 r0
513 and #0x3c, r0
514 cmp/eq #0x3c, r0
515 bf 9f
516 TRACE_IRQS_OFF
5179:
518
511 ! Setup return address and jump to do_IRQ 519 ! Setup return address and jump to do_IRQ
512 mov.l 4f, r9 ! fetch return address 520 mov.l 4f, r9 ! fetch return address
513 lds r9, pr ! put return address in pr 521 lds r9, pr ! put return address in pr