On Mon, Apr 9, 2012 at 7:37 AM, Jiang Liu <liuj97@xxxxxxxxx> wrote: > Hi Yinghai, > >>> +int arch_acpi_pci_root_remove(struct acpi_pci_root *root) >>> +{ >>> + acpi_status status; >>> + unsigned long long base_addr; >>> + >>> + /* Remove MMCFG information for host bridges with _CBA method */ >>> + status = acpi_evaluate_integer(root->device->handle, METHOD_NAME__CBA, >>> + NULL, &base_addr); >> >> add one flag in acpi_pci_root about we added mmconf for it before? >> like mmconf_added? >> > > I feel adding a flag here doesn't help here. For any hot-pluggable PCI host bridge > with _CBA method available, arch_acpi_pci_root_remove() should delete the MMCFG > information, no matter it's added by __pci_mmcfg_init() or arch_acpi_pci_root_add(). > So check existence of _CBA seems simpler here. please check updated patch that will use mmconf_added. it will make sure only remove mmconf with _CBA. other than that if BIOS have duplicated one in MCFG table, and _CBA, will bail out early. Line added will be 68 instead of 90. also some changes could be merged to patch 1-5. Thanks Yinghai
Attachment:
jiang_mmconf_6_v3.patch
Description: Binary data