diff options
author | Naveen Naidu | 2021-11-18 19:33:14 +0530 |
---|---|---|
committer | Bjorn Helgaas | 2021-11-18 13:38:20 -0600 |
commit | 316df7062a7926e315507e2d5b7a23331a3bfa67 (patch) | |
tree | 3a12f912e653beb63dcb5af64d84ead18f1d2e27 | |
parent | 9bc9310c8f641234a81f139414fdb5b20b1df8c4 (diff) |
PCI: Drop error data fabrication when config read fails
If config pci_ops.read() methods return failure, the PCI_OP_READ() and
PCI_USER_READ_CONFIG() wrappers use PCI_SET_ERROR_RESPONSE() to set the
data value, so there's no need to set it in the pci_ops.read() methods
themselves.
Drop the unnecessary data value fabrication when pci_ops.read() fails.
Link: https://lore.kernel.org/r/1b2edb060cf19b45f70645b331e6c08c9ba798c0.1637243717.git.naveennaidu479@gmail.com
Signed-off-by: Naveen Naidu <naveennaidu479@gmail.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rob Herring <robh@kernel.org>
-rw-r--r-- | drivers/pci/access.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/pci/access.c b/drivers/pci/access.c index e1add90494ec..a92637627845 100644 --- a/drivers/pci/access.c +++ b/drivers/pci/access.c @@ -83,10 +83,8 @@ int pci_generic_config_read(struct pci_bus *bus, unsigned int devfn, void __iomem *addr; addr = bus->ops->map_bus(bus, devfn, where); - if (!addr) { - *val = ~0; + if (!addr) return PCIBIOS_DEVICE_NOT_FOUND; - } if (size == 1) *val = readb(addr); @@ -125,10 +123,8 @@ int pci_generic_config_read32(struct pci_bus *bus, unsigned int devfn, void __iomem *addr; addr = bus->ops->map_bus(bus, devfn, where & ~0x3); - if (!addr) { - *val = ~0; + if (!addr) return PCIBIOS_DEVICE_NOT_FOUND; - } *val = readl(addr); |