diff options
Diffstat (limited to 'drivers/pci/pci.c')
| -rw-r--r-- | drivers/pci/pci.c | 9 | 
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index da5570cf5c6a..fdf65a6c13f6 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -514,7 +514,7 @@ EXPORT_SYMBOL(pci_find_resource);   */  struct pci_dev *pci_find_pcie_root_port(struct pci_dev *dev)  { -	struct pci_dev *bridge, *highest_pcie_bridge = NULL; +	struct pci_dev *bridge, *highest_pcie_bridge = dev;  	bridge = pci_upstream_bridge(dev);  	while (bridge && pci_is_pcie(bridge)) { @@ -522,11 +522,10 @@ struct pci_dev *pci_find_pcie_root_port(struct pci_dev *dev)  		bridge = pci_upstream_bridge(bridge);  	} -	if (highest_pcie_bridge && -	    pci_pcie_type(highest_pcie_bridge) == PCI_EXP_TYPE_ROOT_PORT) -		return highest_pcie_bridge; +	if (pci_pcie_type(highest_pcie_bridge) != PCI_EXP_TYPE_ROOT_PORT) +		return NULL; -	return NULL; +	return highest_pcie_bridge;  }  EXPORT_SYMBOL(pci_find_pcie_root_port);  |