diff options
author | Sebastian Andrzej Siewior <sebastian@breakpoint.cc> | 2011-05-31 08:56:11 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-06-03 14:53:15 +0200 |
commit | 3a43e05f4d0600e906fa09f4a65d749288c44592 (patch) | |
tree | b99732c8f459e70078c7dd90f62a5174376e3c62 /kernel/irq/handle.c | |
parent | genirq: Print threaded handler in spurious debug output (diff) | |
download | linux-3a43e05f4d0600e906fa09f4a65d749288c44592.tar.xz linux-3a43e05f4d0600e906fa09f4a65d749288c44592.zip |
irq: Handle spurios irq detection for threaded irqs
The detection of spurios interrupts is currently limited to first level
handler. In force-threaded mode we never notice if the threaded irq does
not feel responsible.
This patch catches the return value of the threaded handler and forwards
it to the spurious detector. If the primary handler returns only
IRQ_WAKE_THREAD then the spourious detector ignores it because it gets
called again from the threaded handler.
[ tglx: Report the erroneous return value early and bail out ]
Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Link: http://lkml.kernel.org/r/1306824972-27067-2-git-send-email-sebastian@breakpoint.cc
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/irq/handle.c')
-rw-r--r-- | kernel/irq/handle.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c index 90cb55f6d7eb..470d08c82bbe 100644 --- a/kernel/irq/handle.c +++ b/kernel/irq/handle.c @@ -133,12 +133,6 @@ handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action) switch (res) { case IRQ_WAKE_THREAD: /* - * Set result to handled so the spurious check - * does not trigger. - */ - res = IRQ_HANDLED; - - /* * Catch drivers which return WAKE_THREAD but * did not set up a thread function */ |