genirq: threaded irq handlers review fixups
Delta patch to address the review comments.
- Implement warning when IRQ_WAKE_THREAD is requested and no
thread handler installed
- coding style fixes
Pointed-out-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index a4c1ab8..a3eb7ba 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -407,20 +407,17 @@
return ret;
}
-static inline int irq_thread_should_run(struct irqaction *action)
-{
- return test_and_clear_bit(IRQTF_RUNTHREAD, &action->thread_flags);
-}
-
static int irq_wait_for_interrupt(struct irqaction *action)
{
while (!kthread_should_stop()) {
set_current_state(TASK_INTERRUPTIBLE);
- if (irq_thread_should_run(action)) {
+
+ if (test_and_clear_bit(IRQTF_RUNTHREAD,
+ &action->thread_flags)) {
__set_current_state(TASK_RUNNING);
return 0;
- } else
- schedule();
+ }
+ schedule();
}
return -1;
}
@@ -820,8 +817,8 @@
* @irq: Interrupt line to allocate
* @handler: Function to be called when the IRQ occurs.
* Primary handler for threaded interrupts
- * @thread_fn: Function called from the irq handler thread
- * If NULL, no irq thread is created
+ * @thread_fn: Function called from the irq handler thread
+ * If NULL, no irq thread is created
* @irqflags: Interrupt type flags
* @devname: An ascii name for the claiming device
* @dev_id: A cookie passed back to the handler function