summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSinan Kaya <okaya@codeaurora.org>2017-12-19 00:37:53 -0500
committerBjorn Helgaas <bhelgaas@google.com>2018-01-17 09:16:46 -0500
commit39c9465204e8f4a0617405f32290f903aa03e19c (patch)
treed70d80ee01d86ce42c0f55595e0d592e620b9da1
parent48ec053518a2c98c02fb162fefe5a7eaa0ba9040 (diff)
PCI: Deprecate pci_get_bus_and_slot()
pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as where a PCI device is present. This restricts the device drivers to be reused for other domain numbers. Getting ready to remove pci_get_bus_and_slot() function in favor of pci_get_domain_bus_and_slot(). When we have a pci_dev, extract the domain number from it. The config access syscalls don't allow the user to supply a domain number, so they only work on devices in domain 0, so we can just hard-code that. Signed-off-by: Sinan Kaya <okaya@codeaurora.org> [bhelgaas: squash quirk & syscall patches together] Signed-off-by: Bjorn Helgaas <helgaas@kernel.org>
-rw-r--r--drivers/pci/quirks.c3
-rw-r--r--drivers/pci/syscall.c4
2 files changed, 4 insertions, 3 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 10684b17d0bd..24e9a148e734 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2699,7 +2699,8 @@ static void __nv_msi_ht_cap_quirk(struct pci_dev *dev, int all)
2699 * HT MSI mapping should be disabled on devices that are below 2699 * HT MSI mapping should be disabled on devices that are below
2700 * a non-Hypertransport host bridge. Locate the host bridge... 2700 * a non-Hypertransport host bridge. Locate the host bridge...
2701 */ 2701 */
2702 host_bridge = pci_get_bus_and_slot(0, PCI_DEVFN(0, 0)); 2702 host_bridge = pci_get_domain_bus_and_slot(pci_domain_nr(dev->bus), 0,
2703 PCI_DEVFN(0, 0));
2703 if (host_bridge == NULL) { 2704 if (host_bridge == NULL) {
2704 dev_warn(&dev->dev, "nv_msi_ht_cap_quirk didn't locate host bridge\n"); 2705 dev_warn(&dev->dev, "nv_msi_ht_cap_quirk didn't locate host bridge\n");
2705 return; 2706 return;
diff --git a/drivers/pci/syscall.c b/drivers/pci/syscall.c
index 83efa001c2e7..e725f99b5479 100644
--- a/drivers/pci/syscall.c
+++ b/drivers/pci/syscall.c
@@ -28,7 +28,7 @@ SYSCALL_DEFINE5(pciconfig_read, unsigned long, bus, unsigned long, dfn,
28 return -EPERM; 28 return -EPERM;
29 29
30 err = -ENODEV; 30 err = -ENODEV;
31 dev = pci_get_bus_and_slot(bus, dfn); 31 dev = pci_get_domain_bus_and_slot(0, bus, dfn);
32 if (!dev) 32 if (!dev)
33 goto error; 33 goto error;
34 34
@@ -96,7 +96,7 @@ SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn,
96 if (!capable(CAP_SYS_ADMIN)) 96 if (!capable(CAP_SYS_ADMIN))
97 return -EPERM; 97 return -EPERM;
98 98
99 dev = pci_get_bus_and_slot(bus, dfn); 99 dev = pci_get_domain_bus_and_slot(0, bus, dfn);
100 if (!dev) 100 if (!dev)
101 return -ENODEV; 101 return -ENODEV;
102 102