BenH reported that there is some assign unassigned resource problem in powerpc. It turns out after | commit 0c5be0cb0edfe3b5c4b62eac68aa2aa15ec681af | Date: Thu Feb 23 19:23:29 2012 -0800 | | PCI: Retry on IORESOURCE_IO type allocations even the root bus does not have io port range, it will keep retrying to realloc with mmio. Current retry logic is : try with must+optional at first, and if it fails will try must then try to extend must with optional. That will fail as mmio-non-pref and mmio-pref for bridge will be next to each other. So we have no chance to extend mmio-non-pref. This will be become more often when we have x86 8 sockets or 32 sockets system, and those system will have one root bus per socket. They will have some root buses do not have ioport range. We should not fall into retry in this case, as root bus does not io port range. We check if the root bus has ioport range, and set bus_res_type_mask, and pass it to assign_resources and don't add ioport res to failed list for root bus that does not have ioport range. So even BIOS set wrong value to pci devices and bridges will still get cleared. Then also check mmio-nonpref resource for root buses. First two are for 3.10, and others are targeted to 3.11 PCI: Split pci_assign_unassigned_resources to per root bus PCI: Skip IORESOURCE_IO allocation for root bus without ioport range PCI: Skip IORESOURCE_MMIO allocation for root bus without MMIO range PCI: Enable pci bridge when it is needed PCI: Retry assign unassigned resources for hotadd root bus Thanks Yinghai -- 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