On Mon, Aug 1, 2011 at 4:13 AM, Deng-Cheng Zhu <dengcheng.zhu@xxxxxxxxx> wrote: > It was found that PCI quirks claim resources (by calling pci_claim_resource()) > *BEFORE* pcibios_fixup_bus() is called. In pcibios_fixup_bus(), > pci_bus->resource[0] for the root bus DOES point to msc_io_resource. If PCI > quirks do the resource claim after the arch-defined pcibios_fixup_bus() being > called, then the problem with Malta goes away. Oh, I see. pcibios_fixup_bus() copies the hose resources to the root bus pci_bus structure. I think that's bogus because we have the interval between mips_pcibios_init() and pcibios_fixup_bus() where the root bus resources are incorrect. I think it would be better to set up the resources correctly right away, as we do on x86. In fact, I'm dubious about pci_create_bus() filling in ioport_resource and iomem_resource as defaults -- that's never what we really want there, and we have to rely on the arch coming back later to fix it up. I'd like to see some sort of restructuring there so we could pass in a list of resources at the time we create the bus. Bjorn