[PATCH 1/2] pci: Fix root port bus->self is NULL
Dongsheng.Wang at freescale.com
Dongsheng.Wang at freescale.com
Tue Jan 7 20:51:34 EST 2014
> >> 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
>
More information about the Linuxppc-dev
mailing list