diff options
author | Sinan Kaya <okaya@codeaurora.org> | 2017-12-19 00:37:53 -0500 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2018-01-17 09:16:46 -0500 |
commit | 39c9465204e8f4a0617405f32290f903aa03e19c (patch) | |
tree | d70d80ee01d86ce42c0f55595e0d592e620b9da1 | |
parent | 48ec053518a2c98c02fb162fefe5a7eaa0ba9040 (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.c | 3 | ||||
-rw-r--r-- | drivers/pci/syscall.c | 4 |
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 | ||