aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/irqreturn.h
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <sebastian@breakpoint.cc>2011-05-31 08:56:11 +0200
committerThomas Gleixner <tglx@linutronix.de>2011-06-03 14:53:15 +0200
commit3a43e05f4d0600e906fa09f4a65d749288c44592 (patch)
treeb99732c8f459e70078c7dd90f62a5174376e3c62 /include/linux/irqreturn.h
parentgenirq: Print threaded handler in spurious debug output (diff)
downloadlinux-dev-3a43e05f4d0600e906fa09f4a65d749288c44592.tar.xz
linux-dev-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 'include/linux/irqreturn.h')
-rw-r--r--include/linux/irqreturn.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/irqreturn.h b/include/linux/irqreturn.h
index 819acaaac3f5..714ba08dc092 100644
--- a/include/linux/irqreturn.h
+++ b/include/linux/irqreturn.h
@@ -8,9 +8,9 @@
* @IRQ_WAKE_THREAD handler requests to wake the handler thread
*/
enum irqreturn {
- IRQ_NONE,
- IRQ_HANDLED,
- IRQ_WAKE_THREAD,
+ IRQ_NONE = (0 << 0),
+ IRQ_HANDLED = (1 << 0),
+ IRQ_WAKE_THREAD = (1 << 1),
};
typedef enum irqreturn irqreturn_t;