summaryrefslogtreecommitdiff
path: root/include/linux/pci.h
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2020-07-08 11:38:59 +0200
committerPeter Zijlstra <peterz@infradead.org>2020-07-08 11:38:59 +0200
commitfaa2fd7cbad4609d06d7904c0a80cf2f8cd23678 (patch)
tree3a5bfcc8879b719aec97cb73ed6e020cde502546 /include/linux/pci.h
parent01e377c539ca52a6c753d0fdbe93b3b8fcd66a1c (diff)
parentce3614daabea8a2d01c1dd17ae41d1ec5e5ae7db (diff)
Merge branch 'sched/urgent'
Diffstat (limited to 'include/linux/pci.h')
-rw-r--r--include/linux/pci.h11
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;