summaryrefslogtreecommitdiff
path: root/drivers/pci/pci.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2017-08-29 11:42:07 +0200
committerIngo Molnar <mingo@kernel.org>2017-08-29 11:42:07 +0200
commit416b0c0faf634abc09568885cb95266ce669c606 (patch)
treebf63b94f57246fbf264c93bfdd6233395b07ef89 /drivers/pci/pci.c
parentc0bb80cfa3c37fd92f066e328d83656067519a5f (diff)
parent9c3a815f471a84811cf8021cf64aae3b8081dfde (diff)
downloadlinux-416b0c0faf634abc09568885cb95266ce669c606.tar.gz
linux-416b0c0faf634abc09568885cb95266ce669c606.tar.bz2
linux-416b0c0faf634abc09568885cb95266ce669c606.zip
Merge branch 'linus' into x86/apic, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/pci/pci.c')
-rw-r--r--drivers/pci/pci.c9
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);