diff --git a/drivers/staging/iio/imu/inv_mpu/inv_mpu_ring.c b/drivers/staging/iio/imu/inv_mpu/inv_mpu_ring.c index d8558d75c70d..bfff9c5d48c9 100644 --- a/drivers/staging/iio/imu/inv_mpu/inv_mpu_ring.c +++ b/drivers/staging/iio/imu/inv_mpu/inv_mpu_ring.c @@ -1002,7 +1002,7 @@ irqreturn_t inv_read_fifo(int irq, void *dev_id) if (result) goto end_session; fifo_count = be16_to_cpup((__be16 *)(&data[0])); - if (fifo_count == 0) + if ((fifo_count == 0) && (kfifo_len(&st->timestamps) > 0)) goto flush_fifo; if (fifo_count < bytes_per_datum) goto end_session;