diff options
Diffstat (limited to 'include/linux/pci.h')
| -rw-r--r-- | include/linux/pci.h | 11 | 
1 files changed, 5 insertions, 6 deletions
| diff --git a/include/linux/pci.h b/include/linux/pci.h index c79d83304e52..34c1c4f45288 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -2169,12 +2169,11 @@ static inline int pci_pcie_type(const struct pci_dev *dev)   */  static inline struct pci_dev *pcie_find_root_port(struct pci_dev *dev)  { -	struct pci_dev *bridge = pci_upstream_bridge(dev); - -	while (bridge) { -		if (pci_pcie_type(bridge) == PCI_EXP_TYPE_ROOT_PORT) -			return bridge; -		bridge = pci_upstream_bridge(bridge); +	while (dev) { +		if (pci_is_pcie(dev) && +		    pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT) +			return dev; +		dev = pci_upstream_bridge(dev);  	}  	return NULL; |