Re: test for "spurious" IRQ ignores possible IRQ_WAKE_THREAD value

From: Cyrill Gorcunov
Date: Thu Sep 17 2009 - 15:34:25 EST


[Robert P. J. Day - Mon, Sep 14, 2009 at 04:34:48PM -0400]
| On Mon, 14 Sep 2009, Robert P. J. Day wrote:
|
| > never ashamed to embarrass myself in public, i just noticed the
| > following. from kernel/irq/spurious.c:
| >
| > ...
| > static void
| > __report_bad_irq(unsigned int irq, struct irq_desc *desc,
| > irqreturn_t action_ret)
| > {
| > struct irqaction *action;
| >
| > if (action_ret != IRQ_HANDLED && action_ret != IRQ_NONE) {
| > printk(KERN_ERR "irq event %d: bogus return value %x\n",
| > irq, action_ret);
| >
| > but from include/linux/irqreturn.h, we see *three* possible return
| > values:
| >
| > enum irqreturn {
| > IRQ_NONE,
| > IRQ_HANDLED,
| > IRQ_WAKE_THREAD,
| > };
| >
| > typedef enum irqreturn irqreturn_t;
| > #define IRQ_RETVAL(x) ((x) != IRQ_NONE)
| >
| > is there an inconsistency here?
|
...

Hi Robert,

It could that IRQ_WAKE_THREAD is just missed here. I suppose it
was brough there as thread irq merged. But I think only Thomas
know for sure, I definitely miss something :) CC'ed

-- Cyrill
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/