]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
s390/pci: Use PCIBIOS return values in pci_read()/pci_write()
authorNiklas Schnelle <schnelle@linux.ibm.com>
Thu, 8 Jan 2026 15:45:54 +0000 (16:45 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Sat, 17 Jan 2026 14:55:22 +0000 (15:55 +0100)
While pci_read() and pci_write() have returned errno values since their
inception with commit cd24834130ac ("s390/pci: base support") other
config accessors in particular pci_generic_config_read() as well as
pci_generic_config_write() return specific error values which are then
converted to errno by pcibios_err_to_errno(). Since latter does handle
the case where the error value already looks like an errno the previous
behavior is unlikely to cause actual issues.

Still, for consistency and in case any caller explicitly checks error
values align pci_read() and pci_write() with the generic accessors.

Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
Reviewed-by: Farhan Ali <alifm@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/pci/pci.c

index 7f44b0644a20ebfd3c8e41b32f946e764beeb4be..0d952e8fdc8af4869a7deeda7de8c9be19d40c2d 100644 (file)
@@ -406,7 +406,9 @@ static int pci_read(struct pci_bus *bus, unsigned int devfn, int where,
 {
        struct zpci_dev *zdev = zdev_from_bus(bus, devfn);
 
-       return (zdev) ? zpci_cfg_load(zdev, where, val, size) : -ENODEV;
+       if (!zdev || zpci_cfg_load(zdev, where, val, size))
+               return PCIBIOS_DEVICE_NOT_FOUND;
+       return PCIBIOS_SUCCESSFUL;
 }
 
 static int pci_write(struct pci_bus *bus, unsigned int devfn, int where,
@@ -414,7 +416,9 @@ static int pci_write(struct pci_bus *bus, unsigned int devfn, int where,
 {
        struct zpci_dev *zdev = zdev_from_bus(bus, devfn);
 
-       return (zdev) ? zpci_cfg_store(zdev, where, val, size) : -ENODEV;
+       if (!zdev || zpci_cfg_store(zdev, where, val, size))
+               return PCIBIOS_DEVICE_NOT_FOUND;
+       return PCIBIOS_SUCCESSFUL;
 }
 
 static struct pci_ops pci_root_ops = {