On Sun, Aug 9, 2020 at 7:00 PM <trix@xxxxxxxxxx> wrote: > > From: Tom Rix <trix@xxxxxxxxxx> > > clang static analysis reports this problem > > inv_mpu_ring.c:181:18: warning: Division by zero > nb = fifo_count / bytes_per_datum; > ~~~~~~~~~~~^~~~~~~~~~~~~~~~~ > > This is a false positive. > Dividing by 0 is protected by this check > > if (!(st->chip_config.accl_fifo_enable | > st->chip_config.gyro_fifo_enable | > st->chip_config.magn_fifo_enable)) > goto end_session; > bytes_per_datum = 0; > > But there is another fifo, temp_fifo > > if (st->chip_config.temp_fifo_enable) > bytes_per_datum += INV_MPU6050_BYTES_PER_TEMP_SENSOR; > > Which would be skipped if it was the only enabled fifo. > So add to the check. > > Fixes: 2e4c0a5e2576 ("iio: imu: inv_mpu6050: add fifo temperature data support") > > Signed-off-by: Tom Rix <trix@xxxxxxxxxx> There shouldn't be a blank line in between. Other than that, Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > --- > drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c > index b533fa2dad0a..5240a400dcb4 100644 > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c > @@ -141,6 +141,7 @@ irqreturn_t inv_mpu6050_read_fifo(int irq, void *p) > > if (!(st->chip_config.accl_fifo_enable | > st->chip_config.gyro_fifo_enable | > + st->chip_config.temp_fifo_enable | > st->chip_config.magn_fifo_enable)) > goto end_session; > bytes_per_datum = 0; > -- > 2.18.1 > -- With Best Regards, Andy Shevchenko