Re: PCI IRQ problems: "nobody cared!"

From: Jim Paris
Date: Fri Oct 15 2004 - 13:53:55 EST


> I posted a patch to poll when we find IRQ's have gone astray. It needs
> redoing versus Ingo's new 2.6.9 IRQ code but should apply cleanly to
> 2.6.8. You can the boot with "irqpoll" as a boot option and the box
> should survive.

You rock! irqpoll works like a charm. I get the same error in the
same place, but now all of my devices still work. I don't see any
obvious performance impact (although I haven't tested it much).

I applied this irqpoll patch:
http://groups.google.com/groups?selm=2BunT-6Be-15%40gated-at.bofh.it
and then some minor fixes (see below).

The log for this boot are at
https://jim.sh/svn/jim/devl/toughbook/log/irqpoll.txt
in case anyone is interested.

-jim


diff -urN ac/arch/i386/kernel/irq.c jim/arch/i386/kernel/irq.c
--- ac/arch/i386/kernel/irq.c 2004-10-15 13:18:46.000000000 -0400
+++ jim/arch/i386/kernel/irq.c 2004-10-15 13:18:26.000000000 -0400
@@ -391,11 +391,11 @@
{
if((irqfixup == 2 && irq == 0) || action_ret == IRQ_NONE)
{
+ int ok;
#ifdef CONFIG_4KSTACKS
u32 *isp;
union irq_ctx * curctx;
union irq_ctx * irqctx;
- int ok;

curctx = (union irq_ctx *) current_thread_info();
irqctx = hardirq_ctx[smp_processor_id()];
@@ -435,7 +435,7 @@
#else
spin_unlock(&desc->lock);

- ok = misrouted_irq(irq, desc, regs);
+ ok = misrouted_irq(irq, regs);

spin_lock(&desc->lock);
#endif

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