In function cm3232_reg_init(), it returns 0 even if the last call to
i2c_smbus_write_byte_data() returns a negative value (indicates error).
As a result, the return value may be inconsistent with the execution
status, and the caller of cm3232_reg_init() will not be able to detect
the error. This patch fixes the bug.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188641
Signed-off-by: Pan Bian <[email protected]>
---
drivers/iio/light/cm3232.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/iio/light/cm3232.c b/drivers/iio/light/cm3232.c
index fe89b68..263e972 100644
--- a/drivers/iio/light/cm3232.c
+++ b/drivers/iio/light/cm3232.c
@@ -119,7 +119,7 @@ static int cm3232_reg_init(struct cm3232_chip *chip)
if (ret < 0)
dev_err(&chip->client->dev, "Error writing reg_cmd\n");
- return 0;
+ return ret;
}
/**
--
1.9.1
On 03/12/16 09:24, Pan Bian wrote:
> In function cm3232_reg_init(), it returns 0 even if the last call to
> i2c_smbus_write_byte_data() returns a negative value (indicates error).
> As a result, the return value may be inconsistent with the execution
> status, and the caller of cm3232_reg_init() will not be able to detect
> the error. This patch fixes the bug.
>
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188641
>
> Signed-off-by: Pan Bian <[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/iio/light/cm3232.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iio/light/cm3232.c b/drivers/iio/light/cm3232.c
> index fe89b68..263e972 100644
> --- a/drivers/iio/light/cm3232.c
> +++ b/drivers/iio/light/cm3232.c
> @@ -119,7 +119,7 @@ static int cm3232_reg_init(struct cm3232_chip *chip)
> if (ret < 0)
> dev_err(&chip->client->dev, "Error writing reg_cmd\n");
>
> - return 0;
> + return ret;
> }
>
> /**
>