summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUwe Kleine-König <Uwe.Kleine-Koenig@digi.com>2008-04-25 15:16:17 +0200
committerUwe Kleine-König <Uwe.Kleine-Koenig@digi.com>2008-04-25 15:45:08 +0200
commita57a0b1d0f66da5ff5dc8f1a5a999f4d2f66090a (patch)
tree8e80fbd0600b7f4be3967311961c118b7db013a2
parentns9xxx: fix handle_prio_irq to unmask irqs with lower priority (diff)
downloadlinux-a57a0b1d0f66da5ff5dc8f1a5a999f4d2f66090a.tar.xz
linux-a57a0b1d0f66da5ff5dc8f1a5a999f4d2f66090a.zip
ns9xxx: check for irq lockups
When I copy-adapted handle_level_irq I skipped note_interrupt because I considered it unimportant. If I had understand its importance I would have saved myself some ours of debugging. Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
-rw-r--r--arch/arm/mach-ns9xxx/irq.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/mach-ns9xxx/irq.c b/arch/arm/mach-ns9xxx/irq.c
index ba7a9e4888f0..75f2070dec7b 100644
--- a/arch/arm/mach-ns9xxx/irq.c
+++ b/arch/arm/mach-ns9xxx/irq.c
@@ -78,6 +78,11 @@ void handle_prio_irq(unsigned int irq, struct irq_desc *desc)
action_ret = handle_IRQ_event(irq, action);
+ /* XXX: There is no direct way to access noirqdebug, so check
+ * unconditionally for spurious irqs...
+ * Maybe this function should go to kernel/irq/chip.c? */
+ note_interrupt(irq, desc, action_ret);
+
spin_lock(&desc->lock);
desc->status &= ~IRQ_INPROGRESS;