The new PCI fixup code ate my IDE controller

From: Matthew Wilcox
Date: Wed Sep 22 2004 - 12:52:21 EST



The new DECLARE_PCI_FIXUP_HEADER() now makes the order of fixups depend
on link order. This is a bad thing because it's now one more thing that
link order is used to determine. Eventually, we're going to have a knot
where you can't move link order to make everything work.

The specific problem here is that quirk_ide_bases() is called before
superio_fixup_pci(). This is only a problem on PA-RISC. I can see
a few solutions to this. First, we can move the whole suckyio driver
to arch/parisc, ensuring it gets linked before drivers/pci. Second,
just move the DECLARE_PCI_FIXUP_HEADER to arch/parisc. Third, link
drivers/parisc ahead of drivers/pci (what other fun ordering problems
might we have?) Fourth, move the IDE quirk from drivers/pci/quirks.c
to drivers/ide somewhere (which is linked after drivers/parisc so would
happen to fix our problem). Fifth, back out the quirk changes. Sixth,
change the pci fixup stuff to sort the quirks by vendor ID (PCI_ANY_ID
sorts after any other ID).

Suggestions?

--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain
-
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/