aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pci/search.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/pci/search.c b/drivers/pci/search.c
index c13232435dc0..9f7090fa8771 100644
--- a/drivers/pci/search.c
+++ b/drivers/pci/search.c
@@ -139,12 +139,14 @@ struct pci_dev * pci_get_slot(struct pci_bus *bus, unsigned int devfn)
139} 139}
140 140
141/** 141/**
142 * pci_get_bus_and_slot - locate PCI device from a given PCI slot 142 * pci_get_bus_and_slot - locate PCI device from a given PCI bus & slot
143 * @bus: number of PCI bus on which desired PCI device resides 143 * @bus: number of PCI bus on which desired PCI device resides
144 * @devfn: encodes number of PCI slot in which the desired PCI 144 * @devfn: encodes number of PCI slot in which the desired PCI
145 * device resides and the logical device number within that slot 145 * device resides and the logical device number within that slot
146 * in case of multi-function devices. 146 * in case of multi-function devices.
147 * 147 *
148 * Note: the bus/slot search is limited to PCI domain (segment) 0.
149 *
148 * Given a PCI bus and slot/function number, the desired PCI device 150 * Given a PCI bus and slot/function number, the desired PCI device
149 * is located in system global list of PCI devices. If the device 151 * is located in system global list of PCI devices. If the device
150 * is found, a pointer to its data structure is returned. If no 152 * is found, a pointer to its data structure is returned. If no
@@ -157,7 +159,8 @@ struct pci_dev * pci_get_bus_and_slot(unsigned int bus, unsigned int devfn)
157 struct pci_dev *dev = NULL; 159 struct pci_dev *dev = NULL;
158 160
159 while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) { 161 while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
160 if (dev->bus->number == bus && dev->devfn == devfn) 162 if (pci_domain_nr(dev->bus) == 0 &&
163 (dev->bus->number == bus && dev->devfn == devfn))
161 return dev; 164 return dev;
162 } 165 }
163 return NULL; 166 return NULL;