s390/pci: return error after failed pci ops
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Tue, 16 Apr 2013 12:18:41 +0000 (14:18 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 17 Apr 2013 12:07:38 +0000 (14:07 +0200)
Access to pci config space via pci_ops should not fail silently.

Reviewed-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/pci/pci.c

index 51d16f1fb5ea40bfee5041028bf8790f33573d1a..6a054bf83eb0d75cc065416aaacedfa8bec91451 100644 (file)
@@ -405,20 +405,28 @@ static int pci_read(struct pci_bus *bus, unsigned int devfn, int where,
                    int size, u32 *val)
 {
        struct zpci_dev *zdev = get_zdev_by_bus(bus);
+       int ret;
 
        if (!zdev || devfn != ZPCI_DEVFN)
-               return 0;
-       return zpci_cfg_load(zdev, where, val, size);
+               ret = -ENODEV;
+       else
+               ret = zpci_cfg_load(zdev, where, val, size);
+
+       return ret;
 }
 
 static int pci_write(struct pci_bus *bus, unsigned int devfn, int where,
                     int size, u32 val)
 {
        struct zpci_dev *zdev = get_zdev_by_bus(bus);
+       int ret;
 
        if (!zdev || devfn != ZPCI_DEVFN)
-               return 0;
-       return zpci_cfg_store(zdev, where, val, size);
+               ret = -ENODEV;
+       else
+               ret = zpci_cfg_store(zdev, where, val, size);
+
+       return ret;
 }
 
 static struct pci_ops pci_root_ops = {