ret = 0 indicates a case of no error but no data read from
the bus which is an invalid case. This case doesn't ever happen
in reality. It should perhaps be handled for correctness though.
Signed-off-by: Shreeya Patel <[email protected]>
---
drivers/staging/iio/addac/adt7316-i2c.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/staging/iio/addac/adt7316-i2c.c b/drivers/staging/iio/addac/adt7316-i2c.c
index 856bcfa60c6c..473e5e34ec00 100644
--- a/drivers/staging/iio/addac/adt7316-i2c.c
+++ b/drivers/staging/iio/addac/adt7316-i2c.c
@@ -30,6 +30,10 @@ static int adt7316_i2c_read(void *client, u8 reg, u8 *data)
}
ret = i2c_smbus_read_byte(client);
+
+ if (!ret)
+ return -EIO;
+
if (ret < 0) {
dev_err(&cl->dev, "I2C read error\n");
return ret;
--
2.17.1
On Sat, 17 Nov 2018 04:21:32 +0530
Shreeya Patel <[email protected]> wrote:
> ret = 0 indicates a case of no error but no data read from
> the bus which is an invalid case. This case doesn't ever happen
> in reality. It should perhaps be handled for correctness though.
>
> Signed-off-by: Shreeya Patel <[email protected]>
Applied to the togreg branch of iio.git and pushed out as testing
for the autobuilders to play with it.
Thanks,
Jonathan
> ---
> drivers/staging/iio/addac/adt7316-i2c.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/staging/iio/addac/adt7316-i2c.c b/drivers/staging/iio/addac/adt7316-i2c.c
> index 856bcfa60c6c..473e5e34ec00 100644
> --- a/drivers/staging/iio/addac/adt7316-i2c.c
> +++ b/drivers/staging/iio/addac/adt7316-i2c.c
> @@ -30,6 +30,10 @@ static int adt7316_i2c_read(void *client, u8 reg, u8 *data)
> }
>
> ret = i2c_smbus_read_byte(client);
> +
> + if (!ret)
> + return -EIO;
> +
> if (ret < 0) {
> dev_err(&cl->dev, "I2C read error\n");
> return ret;