genirq: Add IRQF_NO_THREAD
authorThomas Gleixner <tglx@linutronix.de>
Wed, 23 Feb 2011 23:52:18 +0000 (23:52 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 25 Feb 2011 19:24:22 +0000 (20:24 +0100)
Some low level interrupts cannot be threaded even when we force thread
all interrupt handlers. Add a flag to annotate such interrupts. Add
all timer interrupts to this category by default.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
LKML-Reference: <20110223234956.578893460@linutronix.de>

include/linux/interrupt.h

index e116fef274cd5e90a86aa42c770b863e37d1400a..0fc3eb9397b4867dc83ff3034b6764e32ad1ffbd 100644 (file)
@@ -58,6 +58,7 @@
  *                irq line disabled until the threaded handler has been run.
  * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend
  * IRQF_FORCE_RESUME - Force enable it on resume even if IRQF_NO_SUSPEND is set
+ * IRQF_NO_THREAD - Interrupt cannot be threaded
  */
 #define IRQF_DISABLED          0x00000020
 #define IRQF_SAMPLE_RANDOM     0x00000040
@@ -70,8 +71,9 @@
 #define IRQF_ONESHOT           0x00002000
 #define IRQF_NO_SUSPEND                0x00004000
 #define IRQF_FORCE_RESUME      0x00008000
+#define IRQF_NO_THREAD         0x00010000
 
-#define IRQF_TIMER             (__IRQF_TIMER | IRQF_NO_SUSPEND)
+#define IRQF_TIMER             (__IRQF_TIMER | IRQF_NO_SUSPEND | IRQF_NO_THREAD)
 
 /*
  * These values can be returned by request_any_context_irq() and