summaryrefslogtreecommitdiffstats
path: root/include/linux
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
parentef26f20cd117eb3c185038ed7cbf7b235575751d (diff)
downloadlinux-stable-3a43e05f4d0600e906fa09f4a65d749288c44592.tar.gz
linux-stable-3a43e05f4d0600e906fa09f4a65d749288c44592.tar.bz2
linux-stable-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')
-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;