On Tue, Feb 5, 2013 at 4:19 PM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote: > > Maybe. I'd rather not introduce for_each_pci_host_bridge() at all, if > we can avoid it. Every place it's used is a place we have to audit to > make sure it's safe. I think your audit above is correct and > complete, but it relies on way too much architecture knowledge. It's > better if we can deduce correctness without knowing which arches > support hotplug and which CPUs support EDAC. > > As soon as for_each_pci_host_bridge() is in the tree, those uses can > be copied to even more places. It's a macro, so it's usable by any > module, even out-of-tree ones that we'll never see and can't fix. So > we won't really have a good way to deprecate and remove it. Now we only have two references in modules. drivers/edac/i7core_edac.c: for_each_pci_host_bridge(host_bridge) { drivers/pci/hotplug/sgi_hotplug.c: for_each_pci_host_bridge(host_bridge) { for the sgi_hotplug.c, it should be same problem that have for acpiphp and pciehp. need to make it support pci host bridge hotplug anyway. for edac, we need to check Mauro about their plan. After those two are addressed, we can drop that EXPORT_SYMBOL_GPL for pci_get_next_host_bridge. We do have pci_get_domain_bus_and_slot() as export symbol. So we export pci_get_next_host_bridge should be ok now. and it would be better than export root buses list. 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