> >> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index
> >> 38e403d..7f2d1ab 100644
> >> --- a/drivers/pci/probe.c
> >> +++ b/drivers/pci/probe.c
> >> @@ -1472,6 +1472,9 @@ int pci_scan_slot(struct pci_bus *bus, int devfn)
> >>    if (!dev->is_added)
> >>            nr++;
> >>
> >> +  if (pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT)
> >> +          bus->self = dev;
> >
> > In this case, bus is the pci root bus I think, so why set bus->self = root
> port ?
> > "bus->self" should pointer to the pci device that bridge out this bus.
> Yes, this patch seems wrong. If dev is root port, bus should be root bus, so 
> we
> shouldn't set root_bus->self = pci_dev_of_root_port.
> 
Why the root bus->self pointer to the bridge?
If child bus create from root bus, the child->self will get the bridge(root 
port) pci device.

> Actually PCI core has correctly setup pci_bus->self for secondary bus of PCIe
> root port.
Yes, right. But the root-bus->self is NULL. I think the root bus should get 
root port
pci device for itself. If there is no bridge at board how to get the root port 
device?

-Dongsheng

> 
> Thanks!
> Gerry
> 

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to