PCI: fix wrong assumption in pci_find_upstream_pcie_bridge
Current pci_find_upstream_pcie_bridge() has a wrong assumption that pci_bus->self is NULL on the root pci bus. But it might not true on some platforms. Because of this wrong assumption, current pci_find_upstream_pcie_bridge() might cause endless loop. We must check pci_bus->parent instead. Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
parent
d391f00f0e
commit
151ab36a2e
|
@ -29,7 +29,7 @@ pci_find_upstream_pcie_bridge(struct pci_dev *pdev)
|
||||||
if (pdev->is_pcie)
|
if (pdev->is_pcie)
|
||||||
return NULL;
|
return NULL;
|
||||||
while (1) {
|
while (1) {
|
||||||
if (!pdev->bus->self)
|
if (!pdev->bus->parent)
|
||||||
break;
|
break;
|
||||||
pdev = pdev->bus->self;
|
pdev = pdev->bus->self;
|
||||||
/* a p2p bridge */
|
/* a p2p bridge */
|
||||||
|
|
Loading…
Reference in New Issue