On Mon, 2012-06-18 at 15:06 -0600, Bjorn Helgaas wrote: > We're moving the CardBus IRQ config from before pci_bus_add_devices() > to after. I see why you did that: we're proposing to do the powerpc > DMA & IRQ setup in pci_bus_add_devices(), so we don't want to have the > powerpc IRQ init clobber the CardBus IRQ config. > > But a driver can claim the device as soon as we call > pci_bus_add_devices(), so we're potentially changing dev->irq after a > driver has already looked at it, which sounds like a bug. > > There are only five possibilities for powerpc pci_irq_fixup: > > ppc47x_pci_irq_fixup > mpc85xx_cds_pci_irq_fixup > maple_pci_irq_fixup > pmac_pci_irq_fixup > rtas_msi_pci_irq_fixup > > If these were normal PCI header quirks instead, they could run > earlier, and we wouldn't need to move this > cardbus_config_irq_and_cls() call. Is it possible to make these > quirks, Ben? Wait ... why are those fixups relevant ? They have to run after pci_read_irq_line() (which should have been called pcibios_read_irq_line really) but that's fine, we call both back to back.... The problem has to do with the fact that we setup pdev->irq inside pci_bus_add_devices() with the new proposed code (the fixup itself is just a detail). You want cardbus to "quirk" the irq after that's been fixed up... maybe that's a case for moving cardbus_config_irq_and_cls() to pci_enable_device() ? Or add another hook inside pci_bus_add_devices()... Cheers, Ben. -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html