Re: [PATCH] iio: light: isl29501: Simplify code to kill compiler warning

Jonathan Cameron
2018-08-25T08:31:04Z

On Thu, 23 Aug 2018 23:24:35 +0200
Geert Uytterhoeven <geert@linux-m68k.org> wrote:

> With gcc 4.1.2:
>
> drivers/iio/proximity/isl29501.c: In function ‘isl29501_register_write’:
> drivers/iio/proximity/isl29501.c:235: warning: ‘msb’ may be used uninitialized in this function
>
> While this is a false positive, it can easily be avoided by removing the
> "msb" intermediate variable.
> Remove the "lsb" intermediate variable for consistency.
>
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>

Looks sensible to me, but I'd obviously like to leave a little time for
Mathieu to comment as it's his driver.

Jonathan

> ---
> Compile-tested only.
> ---
> drivers/iio/proximity/isl29501.c | 12 ++----------
> 1 file changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/iio/proximity/isl29501.c b/drivers/iio/proximity/isl29501.c
> index e5e94540f404dd2c..5ae549075b27c50d 100644
> --- a/drivers/iio/proximity/isl29501.c
> +++ b/drivers/iio/proximity/isl29501.c
> @@ -232,7 +232,6 @@ static u32 isl29501_register_write(struct isl29501_private *isl29501,
> u32 value)
> {
> const struct isl29501_register_desc *reg = &isl29501_registers[name];
> - u8 msb, lsb;
> int ret;
>
> if (!reg->msb && value > U8_MAX)
> @@ -241,22 +240,15 @@ static u32 isl29501_register_write(struct isl29501_private *isl29501,
> if (value > U16_MAX)
> return -ERANGE;
>
> - if (!reg->msb) {
> - lsb = value & 0xFF;
> - } else {
> - msb = (value >> 8) & 0xFF;
> - lsb = value & 0xFF;
> - }
> -
> mutex_lock(&isl29501->lock);
> if (reg->msb) {
> ret = i2c_smbus_write_byte_data(isl29501->client,
> - reg->msb, msb);
> + reg->msb, value >> 8);
> if (ret < 0)
> goto err;
> }
>
> - ret = i2c_smbus_write_byte_data(isl29501->client, reg->lsb, lsb);
> + ret = i2c_smbus_write_byte_data(isl29501->client, reg->lsb, value);
>
> err:
> mutex_unlock(&isl29501->lock);