These patches convert the table of MMCONFIG regions to a list, to make it easier to support addition and removal of regions at run-time. MMCONFIG management will need to be more dynamic to support _CBA (a PCI host bridge ACPI method that reports the MMCONFIG address), because we will discover _CBA when we claim the host bridge, not in the current pci_arch_init() path. The PCI Firmware Spec requires BIOS to use _CBA, not MCFG, to report MMCONFIG regions of hot-pluggable host bridges. Therefore, if the hardware and firmware support host bridge hotplug, we will encounter _CBA even if Linux itself doesn't support hotplug. I changed some printk and resource name text, but otherwise, except for any implementation errors I made, this series should have no functional change. Changes from v1 to v2: - update resource name when changing bus number range (Yinghai, in 11/18) --- Bjorn Helgaas (18): x86/PCI: MMCONFIG: remove unused definitions x86/PCI: MMCONFIG: count MCFG structures with local variable x86/PCI: MMCONFIG: step through MCFG table, not pci_mmcfg_config[] x86/PCI: MMCONFIG: centralize MCFG structure management x86/PCI: MMCONFIG: simplify tests for empty pci_mmcfg_config table x86/PCI: MMCONFIG: reject MMCONFIG apertures at address zero x86/PCI: MMCONFIG: add PCI_MMCFG_BUS_OFFSET() to factor common expression x86/PCI: MMCONFIG: use a private structure rather than the ACPI MCFG one x86/PCI: MMCONFIG: rename pci_mmcfg_region structure members x86/PCI: MMCONFIG: use pointer to simplify pci_mmcfg_config[] structure access x86/PCI: MMCONFIG: add resource to struct pci_mmcfg_region x86/PCI: MMCONFIG: trivial is_mmconf_reserved() interface simplification x86/PCI: MMCONFIG: add virtual address to struct pci_mmcfg_region x86/PCI: MMCONFIG: remove typeof so we can use a list x86/PCI: MMCONFIG: manage pci_mmcfg_region as a list, not a table x86/PCI: MMCONFIG: add pci_mmconfig_remove() to remove MMCONFIG region x86/PCI: MMCONFIG: clean up printks x86/PCI: MMCONFIG: add lookup function arch/x86/include/asm/pci_x86.h | 20 ++ arch/x86/pci/mmconfig-shared.c | 331 +++++++++++++++++++--------------------- arch/x86/pci/mmconfig_32.c | 16 -- arch/x86/pci/mmconfig_64.c | 88 +++-------- 4 files changed, 201 insertions(+), 254 deletions(-) -- Bjorn -- 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