Hi Yinghai, Any comments about this patch? I searched the code history and found you introduced pci_hp_add_bridge() function at commit a8e4b9c10. In your patchset use pci_hp_add_bridge() for all pci hotplug drivers except acpiphp. So I use pci_hp_add_bridge() in acpiphp instead of using pci_scan_bridge() directly. I would appreciate if you can give some suggestions. Thanks! Yijing. On 2013/4/1 17:22, Yijing Wang wrote: > Use pci_hp_add_bridge() like most other hotplug drivers > rather than call pci_scan_bridge() directly. > > Signed-off-by: Yijing Wang <wangyijing@xxxxxxxxxx> > --- > drivers/pci/hotplug/acpiphp_glue.c | 24 ++++++++++-------------- > 1 files changed, 10 insertions(+), 14 deletions(-) > > diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c > index 270fdba..7d7ed3f 100644 > --- a/drivers/pci/hotplug/acpiphp_glue.c > +++ b/drivers/pci/hotplug/acpiphp_glue.c > @@ -811,7 +811,7 @@ static int __ref enable_device(struct acpiphp_slot *slot) > struct pci_bus *bus = slot->bridge->pci_bus; > struct acpiphp_func *func; > int retval = 0; > - int num, max, pass; > + int num; > acpi_status status; > > if (slot->flags & SLOT_ENABLED) > @@ -827,22 +827,18 @@ static int __ref enable_device(struct acpiphp_slot *slot) > goto err_exit; > } > > - max = acpiphp_max_busnr(bus); > - for (pass = 0; pass < 2; pass++) { > - list_for_each_entry(dev, &bus->devices, bus_list) { > - if (PCI_SLOT(dev->devfn) != slot->device) > + list_for_each_entry(dev, &bus->devices, bus_list) { > + if (PCI_SLOT(dev->devfn) != slot->device) > continue; > - if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE || > - dev->hdr_type == PCI_HEADER_TYPE_CARDBUS) { > - max = pci_scan_bridge(bus, dev, max, pass); > - if (pass && dev->subordinate) { > - check_hotplug_bridge(slot, dev); > - pci_bus_size_bridges(dev->subordinate); > - } > - } > + if ((dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) || > + (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS)) > + pci_hp_add_bridge(dev); > + if (dev->subordinate) { > + check_hotplug_bridge(slot, dev); > + pci_bus_size_bridges(dev->subordinate); > } > } > - > + > pci_bus_assign_resources(bus); > acpiphp_sanitize_bus(bus); > acpiphp_set_hpp_values(bus); > -- Thanks! Yijing -- 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