Messages in this thread | | | Date | Thu, 12 Mar 2009 18:16:36 +0900 | From | Kenji Kaneshige <> | Subject | Re: [PATCH v3 05/11] PCI: beef up pci_do_scan_bus() |
| |
Alex Chiang wrote: > We have a nice interface for re-scanning a PCI bus which will > discover newly added devices, add them to the device tree, and > enable them properly. > > Ensure that the bridge resources are properly sized and assigned > during the rescan. > > Signed-off-by: Alex Chiang <achiang@hp.com> > --- > > drivers/pci/hotplug-pci.c | 16 ++++++++++++---- > 1 files changed, 12 insertions(+), 4 deletions(-) > > diff --git a/drivers/pci/hotplug-pci.c b/drivers/pci/hotplug-pci.c > index 4d4a644..33ab2d2 100644 > --- a/drivers/pci/hotplug-pci.c > +++ b/drivers/pci/hotplug-pci.c > @@ -6,13 +6,21 @@ > > unsigned int __devinit pci_do_scan_bus(struct pci_bus *bus) > { > - unsigned int max; > + unsigned int max, pass; > + struct pci_dev *dev; > > max = pci_scan_child_bus(bus); > > - /* > - * Make the discovered devices available. > - */ > + for (pass=0; pass < 2; pass++) > + list_for_each_entry(dev, &bus->devices, bus_list) { > + if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE || > + dev->hdr_type == PCI_HEADER_TYPE_CARDBUS) > + if (pass && dev->subordinate) > + pci_bus_size_bridges(dev->subordinate); > + } > + > + pci_bus_assign_resources(bus); > + pci_enable_bridges(bus); > pci_bus_add_devices(bus);
The "for (pass=0; pass <2; pass++)" loop doesn't look necessary.
And I'm worrying that your change have some bad effect to the existing user of pci_do_scan_bus(). Did you confirm that?
Thanks, Kenji Kaneshige
| |