Messages in this thread | | | Subject | Re: The new PCI fixup code ate my IDE controller | From | David Woodhouse <> | Date | Wed, 22 Sep 2004 19:19:37 +0100 |
| |
On Wed, 2004-09-22 at 18:49 +0100, Matthew Wilcox wrote: > 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?
Hmm. We already have two passes through the fixup stuff. Add a third?
But sorting PCI_ANY_ID to go last seems like a reasonable first stab at an answer, if that's sufficient for your purposes.
-- dwmw2
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |