iio: adis_buffer: don't push data to buffers on failure
authorNuno Sa <nuno.sa@analog.com>
Tue, 27 Apr 2021 08:54:51 +0000 (10:54 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 17 May 2021 12:49:09 +0000 (13:49 +0100)
There's no point in pushing data to IIO buffers in case 'spi_sync()'
fails.

Reviewed-by: Alexandru Ardelean <ardeleanalex@gmail.com>
Signed-off-by: Nuno Sa <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20210427085454.30616-4-nuno.sa@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/adis_buffer.c

index 4fc0e0c..f6dbfbd 100644 (file)
@@ -146,12 +146,12 @@ static irqreturn_t adis_trigger_handler(int irq, void *p)
        }
 
        ret = spi_sync(adis->spi, &adis->msg);
-       if (ret)
-               dev_err(&adis->spi->dev, "Failed to read data: %d", ret);
-
-
        if (adis->data->has_paging)
                mutex_unlock(&adis->state_lock);
+       if (ret) {
+               dev_err(&adis->spi->dev, "Failed to read data: %d", ret);
+               goto irq_done;
+       }
 
        iio_push_to_buffers_with_timestamp(indio_dev, adis->buffer,
                pf->timestamp);