Re: test for "spurious" IRQ ignores possible IRQ_WAKE_THREAD value
- From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
- Date: Thu, 17 Sep 2009 21:52:26 +0200 (CEST)
On Thu, 17 Sep 2009, Cyrill Gorcunov wrote:
[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
from kernel/irq/handle.c:
trace_irq_handler_entry(irq, action);
ret = action->handler(irq, action->dev_id);
trace_irq_handler_exit(irq, action, ret);
switch (ret) {
case IRQ_WAKE_THREAD:
/*
* Set result to handled so the spurious check
* does not trigger.
*/
ret = IRQ_HANDLED;
So nothing to worry about :)
Thanks,
tglx
--
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/
- References:
- test for "spurious" IRQ ignores possible IRQ_WAKE_THREAD value
- From: Robert P. J. Day
- Re: test for "spurious" IRQ ignores possible IRQ_WAKE_THREAD value
- From: Robert P. J. Day
- Re: test for "spurious" IRQ ignores possible IRQ_WAKE_THREAD value
- From: Cyrill Gorcunov
- test for "spurious" IRQ ignores possible IRQ_WAKE_THREAD value
- Prev by Date: Re: BUG avc_node: Objects remaining on kmem_cache_close()
- Next by Date: [PATCH 0/5] [GIT PULL] tracing: more updates for v2.6.32
- Previous by thread: Re: test for "spurious" IRQ ignores possible IRQ_WAKE_THREAD value
- Next by thread: Re: test for "spurious" IRQ ignores possible IRQ_WAKE_THREAD value
- Index(es):
Relevant Pages
|