Title: [3989] trunk/arch/blackfin/kernel/traps.c: [#3651]
print out interrupt status when we are crashing in interrupt context
- Revision
- 3989
- Author
- rgetz
- Date
- 2007-12-05 14:37:59 -0600 (Wed, 05 Dec 2007)
Log Message
[#3651] print out interrupt status when we are crashing in interrupt context
Diffstat
traps.c | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+)
Modified Paths
Diff
Modified: trunk/arch/blackfin/kernel/traps.c (3988 => 3989)
--- trunk/arch/blackfin/kernel/traps.c 2007-12-05 08:43:13 UTC (rev 3988)
+++ trunk/arch/blackfin/kernel/traps.c 2007-12-05 20:37:59 UTC (rev 3989)
@@ -35,6 +35,7 @@
#include <asm/cacheflush.h>
#include <asm/blackfin.h>
#include <asm/irq_handler.h>
+#include <linux/irq.h>
#include <asm/trace.h>
#include <asm/fixed_code.h>
#include <asm/dma.h>
@@ -755,6 +756,9 @@
void show_regs(struct pt_regs *fp)
{
char buf [150];
+ struct irqaction *action;
+ unsigned int i;
+ unsigned long flags;
printk(KERN_NOTICE "\n" KERN_NOTICE "SEQUENCER STATUS:\n");
printk(KERN_NOTICE " SEQSTAT: %08lx IPEND: %04lx SYSCFG: %04lx\n",
@@ -763,7 +767,33 @@
(fp->seqstat & SEQSTAT_HWERRCAUSE) >> 14);
printk(KERN_NOTICE " EXCAUSE : 0x%lx\n",
fp->seqstat & SEQSTAT_EXCAUSE);
+ for (i = 6; i <= 15 ; i++) {
+ if (fp->ipend & (1 << i)) {
+ decode_address(buf, bfin_read32(EVT0 + 4*i));
+ printk(KERN_NOTICE " physical IVG%i asserted : %s\n", i, buf);
+ }
+ }
+ /* if no interrupts are going off, don't print this out */
+ if (fp->ipend & ~0x3F) {
+ for (i = 0; i < (NR_IRQS - 1); i++) {
+ spin_lock_irqsave(&irq_desc[i].lock, flags);
+ action = ""
+ if (!action)
+ goto unlock;
+
+ decode_address(buf, (unsigned int)action->handler);
+ printk(KERN_NOTICE " logical irq %3d mapped : %s", i, buf);
+ for (action = "" action; action = "" {
+ decode_address(buf, (unsigned int)action->handler);
+ printk(", %s", buf);
+ }
+ printk("\n");
+unlock:
+ spin_unlock_irqrestore(&irq_desc[i].lock, flags);
+ }
+ }
+
decode_address(buf, fp->rete);
printk(KERN_NOTICE " RETE: %s\n", buf);
decode_address(buf, fp->retn);
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
http://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits