Re: [PATCH] iio: imu: inv_mpu6050: check for temp_fifo_enable
From: Andy Shevchenko
Date: Mon Aug 10 2020 - 04:03:04 EST
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