[PATCH] genirq: recommend irqfxup or irqpoll as needed

From: Edward Donovan
Date: Mon Dec 05 2011 - 23:03:46 EST


Users with firmware irq problems are better off trying 'irqfixup'
before 'irqpoll'; make the error messages say this, like the docs
do. And since we know which options the user booted with, and
whether they still have a problem, we won't suggest what they've
already tried. If irqpoll has failed, then we have nothing else
to recommend: note that something may be buggy, somewhere.

For clarity's sake, I'd prefer to remove "nobody cared" entirely,
in favor of "not handled", but I wouldn't want to cut the tie to
archived discussions. Not sure what's best.

Signed-off-by: Edward Donovan <edward.donovan@xxxxxxxxxx>
---
kernel/irq/spurious.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c
index dc813a9..3a1718b 100644
--- a/kernel/irq/spurious.c
+++ b/kernel/irq/spurious.c
@@ -194,9 +194,16 @@ __report_bad_irq(unsigned int irq, struct irq_desc *desc,
if (bad_action_ret(action_ret)) {
printk(KERN_ERR "irq event %d: bogus return value %x\n",
irq, action_ret);
+ } else if (irqfixup == 1) {
+ printk(KERN_ERR "irq %d not handled, even with \"irqfixup\": "
+ "try booting with the \"irqpoll\" option\n",
+ irq);
+ } else if (irqfixup == 2) {
+ printk(KERN_ERR "irq %d not handled, even with \"irqpoll\": "
+ "possible bug\n", irq);
} else {
- printk(KERN_ERR "irq %d: nobody cared (try booting with "
- "the \"irqpoll\" option)\n", irq);
+ printk(KERN_ERR "irq %d not handled (nobody cared): try booting"
+ " with the \"irqfixup\" option\n", irq);
}
dump_stack();
printk(KERN_ERR "handlers:\n");
--
1.7.5.4

--
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/