Re: 2.6.23-rc7 - _random_ IRQ23 : nobody cared

From: Paul Rolland
Date: Thu Sep 27 2007 - 02:06:22 EST


Hi Tejun,

On Thu, 27 Sep 2007 09:55:22 +0900
Tejun Heo <htejun@xxxxxxxxx> wrote:

> Paul Rolland wrote:
> > Hi David,
> >
> > On Mon, 24 Sep 2007 23:56:59 +0930
> > David Newall <david@xxxxxxxxxxxxxxx> wrote:
> >
> >> Paul Rolland "(???????) wrote:
> >>> Hell, IRQ 23 is shared between libata and my modem !!!
> >>>
> >> Tried using the modem?
> >
> Can you change driver load order such that the driver for the modem is
> loaded first?

As I said, it's not possible, because :
- the modem driver is an out-kernel one, so I have to wait the end of the
boot process so that it can be loaded,
- libata on IRQ23 is the one taking care of my disks, and I suspect it
quite hard to install a modem driver before having the disk driver
installed.

I was thinking of delaying the disabling of the IRQ, which is basically the
other part of the problem (the first part being that spurious IRQ from the
modem). If it is possible to do that long enough for the modem driver to be
loaded, then the "IRQ xx : nobody cared" becomes an informational message
during the boot process, and then it vanishes, leaving a perfectly working
machine.
I suspect something in note_interrupt that would do (totally
untested, just thinking loudly) :

/* Allow some delay to complete boot process before
* killing an IRQ. This allow some modules to be
* loaded before we decide the IRQ will not be handled.
*/
if (jiffies > 120*HZ) {
/*
* Now kill the IRQ
*/
printk(KERN_EMERG "Disabling IRQ #%d\n", irq);
desc->status |= IRQ_DISABLED;
desc->depth = 1;
desc->chip->disable(irq);
}

I'll try that this week-end, but if someone has an opinion about it, I'll
be glad to know :)

Regards,
Paul

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