Messages in this thread Patch in this message |  | | From | trix@redhat ... | Subject | [PATCH] iio: imu: inv_mpu6050: check for temp_fifo_enable | Date | Sun, 9 Aug 2020 08:59:36 -0700 |
| |
From: Tom Rix <trix@redhat.com>
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@redhat.com> --- 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
|  |