On Sat, 25 Aug 2018 09:30:55 +0100 Jonathan Cameron <jic23@xxxxxxxxxx> wrote: > On Thu, 23 Aug 2018 23:24:35 +0200 > Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx> > > Looks sensible to me, but I'd obviously like to leave a little time for > Mathieu to comment as it's his driver. Long enough. I guess Mathieu is busy so I'll apply this (mostly before it goes so far back in my email that I loose it) Applied to the togreg branch of iio.git and pushed out as testing for the autobuilders to play with it. I thought about marking for stable to reduce noise but decided that compiler is old enough (and I've not seen it with GCC 8 IIRC) that I wouldn't bother. Basically I'm taking this on the merits of it being better code rather than the warning fix :) Thanks, Jonathan > > 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); >