diff options
author | Aya Mahfouz <mahfouz.saif.elyazal@gmail.com> | 2015-03-03 14:27:37 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-03-06 17:54:33 (GMT) |
commit | e384b69a35ae96055774dbce9dea813043e21142 (patch) | |
tree | 8c6a16b7892ba6a0880801471f3ad2a5fbdc25d1 /drivers/staging/iio | |
parent | 82d28561b7e01eccaa36b06c987045f08a77b4f4 (diff) | |
download | linux-e384b69a35ae96055774dbce9dea813043e21142.tar.xz |
staging: iio: meter: add check on return variables
adds checks on variables that are used to return values. If
the value is less than zero, this indicates that an error
occurred and hence a message is printed through dev_err.
Checks are made on negative values only since spi_* functions
return negative error codes.
The functions were found using the following script but the
aforementioned modification was what was carried out in the end:
@@
identifier len,f;
@@
-int len;
... when != len
when strict
-len =
+return
f(...);
-return len;
Signed-off-by: Aya Mahfouz <mahfouz.saif.elyazal@gmail.com>
Reviewed-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/iio')
-rw-r--r-- | drivers/staging/iio/meter/ade7758_core.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/drivers/staging/iio/meter/ade7758_core.c b/drivers/staging/iio/meter/ade7758_core.c index 70e96b2..7e287da 100644 --- a/drivers/staging/iio/meter/ade7758_core.c +++ b/drivers/staging/iio/meter/ade7758_core.c @@ -303,14 +303,15 @@ static int ade7758_reset(struct device *dev) int ret; u8 val; - ade7758_spi_read_reg_8(dev, - ADE7758_OPMODE, - &val); + ret = ade7758_spi_read_reg_8(dev, ADE7758_OPMODE, &val); + if (ret < 0) { + dev_err(dev, "Failed to read opmode reg\n"); + return ret; + } val |= 1 << 6; /* Software Chip Reset */ - ret = ade7758_spi_write_reg_8(dev, - ADE7758_OPMODE, - val); - + ret = ade7758_spi_write_reg_8(dev, ADE7758_OPMODE, val); + if (ret < 0) + dev_err(dev, "Failed to write opmode reg\n"); return ret; } @@ -444,14 +445,15 @@ static int ade7758_stop_device(struct device *dev) int ret; u8 val; - ade7758_spi_read_reg_8(dev, - ADE7758_OPMODE, - &val); + ret = ade7758_spi_read_reg_8(dev, ADE7758_OPMODE, &val); + if (ret < 0) { + dev_err(dev, "Failed to read opmode reg\n"); + return ret; + } val |= 7 << 3; /* ADE7758 powered down */ - ret = ade7758_spi_write_reg_8(dev, - ADE7758_OPMODE, - val); - + ret = ade7758_spi_write_reg_8(dev, ADE7758_OPMODE, val); + if (ret < 0) + dev_err(dev, "Failed to write opmode reg\n"); return ret; } |