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. _remove should not care about _CBA, it should only care about if it gets added on _add path. Also like Kenji said, We should let it go through even no MMCONF is added at that time. like somehow _CBA does not exis for some root bus or evaluating failing etc. 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