Message ID | 20210413112105.69458-7-nuno.sa@analog.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Adis IRQ fixes and minor improvements | expand |
On Tue, Apr 13, 2021 at 5:45 PM Nuno Sa <nuno.sa@analog.com> wrote: > > There's no point in pushing data to IIO buffers in case 'spi_sync()' > fails. > > Signed-off-by: Nuno Sa <nuno.sa@analog.com> > --- > drivers/iio/imu/adis_buffer.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/imu/adis_buffer.c b/drivers/iio/imu/adis_buffer.c > index 7ab15c08889f..73790b71102b 100644 > --- a/drivers/iio/imu/adis_buffer.c > +++ b/drivers/iio/imu/adis_buffer.c > @@ -146,9 +146,10 @@ static irqreturn_t adis_trigger_handler(int irq, void *p) > } > > ret = spi_sync(adis->spi, &adis->msg); > - if (ret) > + if (ret) { > dev_err(&adis->spi->dev, "Failed to read data: %d", ret); > - > + goto irq_done; > + } This also has some issue with not unlocking the &adis->state_lock. > > if (adis->data->has_paging) { > adis->current_page = 0; > -- > 2.31.1 >
> -----Original Message----- > From: Alexandru Ardelean <ardeleanalex@gmail.com> > Sent: Wednesday, April 14, 2021 9:35 AM > To: Sa, Nuno <Nuno.Sa@analog.com> > Cc: linux-iio <linux-iio@vger.kernel.org>; Jonathan Cameron > <jic23@kernel.org>; Hennerich, Michael > <Michael.Hennerich@analog.com>; Lars-Peter Clausen > <lars@metafoo.de> > Subject: Re: [PATCH 6/7] iio: adis_buffer: don't push data to buffers on > failure > > [External] > > On Tue, Apr 13, 2021 at 5:45 PM Nuno Sa <nuno.sa@analog.com> > wrote: > > > > There's no point in pushing data to IIO buffers in case 'spi_sync()' > > fails. > > > > Signed-off-by: Nuno Sa <nuno.sa@analog.com> > > --- > > drivers/iio/imu/adis_buffer.c | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/iio/imu/adis_buffer.c > b/drivers/iio/imu/adis_buffer.c > > index 7ab15c08889f..73790b71102b 100644 > > --- a/drivers/iio/imu/adis_buffer.c > > +++ b/drivers/iio/imu/adis_buffer.c > > @@ -146,9 +146,10 @@ static irqreturn_t adis_trigger_handler(int > irq, void *p) > > } > > > > ret = spi_sync(adis->spi, &adis->msg); > > - if (ret) > > + if (ret) { > > dev_err(&adis->spi->dev, "Failed to read data: %d", ret); > > - > > + goto irq_done; > > + } > > This also has some issue with not unlocking the &adis->state_lock. Ditto :facepalm: Thanks!
diff --git a/drivers/iio/imu/adis_buffer.c b/drivers/iio/imu/adis_buffer.c index 7ab15c08889f..73790b71102b 100644 --- a/drivers/iio/imu/adis_buffer.c +++ b/drivers/iio/imu/adis_buffer.c @@ -146,9 +146,10 @@ static irqreturn_t adis_trigger_handler(int irq, void *p) } ret = spi_sync(adis->spi, &adis->msg); - if (ret) + if (ret) { dev_err(&adis->spi->dev, "Failed to read data: %d", ret); - + goto irq_done; + } if (adis->data->has_paging) { adis->current_page = 0;
There's no point in pushing data to IIO buffers in case 'spi_sync()' fails. Signed-off-by: Nuno Sa <nuno.sa@analog.com> --- drivers/iio/imu/adis_buffer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)