Re: 2.6.17-rc5-mm1

Benjamin Herrenschmidt
2006-05-30T23:16:14Z

On Wed, 2006-05-31 at 01:05 +0200, Thomas Gleixner wrote:
> CC'ed Ben, who is hacking on msi, IIRC
>
> On Wed, 2006-05-31 at 00:58 +0200, Ingo Molnar wrote:
> > > >
> > > > does MSI much with the irq_desc[] separately perhaps, clearing
> > > > handle_irq in the process perhaps?
> > >
> > > aha - drivers/pci/msi.c sets msix_irq_type, which has no handle_irq
> > > entry. This needs to be converted to irqchips.
> >
> > still ... that doesnt explain how the irq_desc[].irq_handler got NULL.
>
> It has it's own irq_desc array
>
> static struct msi_desc* msi_desc[NR_IRQS] = { [0 ... NR_IRQS-1] = NULL };
>
> Too tired right now. I look into this tomorrow.

The only way to fix drivers/pci/msi.c is to delete it.

Honest, there is nothing salvageable in that code. I've been looking at
the issues involved in supporting MSIs on various powerpc platforms and
I came to the conclusion that there isn't a single re-useable line of
code in there. Not only it's totally specific to a given set of intel
chipsets, but it's also broken beyond imagination. I wonder how that
code got in there in the first place, especially maskqueraded as
"generic" code. Greg must have been drunk.

At this point, the only solution for us (powerpc) is to allow the arch
to have it's own implementatin of the toplevel MSI API (pci_enable_msi()
etc...). From there, depending on what we come up with, we'll look into
moving that back into generic code, but we are under some pressure for
time (stupid 2 weeks merge window thing is a pain sometimes).

Ben.