|
Takashi Iwai |
a5b511 |
From a1caeebab07e9d72eec534489f47964782b93ba9 Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
a5b511 |
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
|
|
Takashi Iwai |
a5b511 |
Date: Sat, 1 May 2021 17:53:13 +0100
|
|
Takashi Iwai |
a5b511 |
Subject: [PATCH] iio: adc: ad7768-1: Fix too small buffer passed to iio_push_to_buffers_with_timestamp()
|
|
Takashi Iwai |
a5b511 |
Git-commit: a1caeebab07e9d72eec534489f47964782b93ba9
|
|
Takashi Iwai |
a5b511 |
Patch-mainline: v5.13-rc4
|
|
Takashi Iwai |
a5b511 |
References: git-fixes
|
|
Takashi Iwai |
a5b511 |
|
|
Takashi Iwai |
a5b511 |
Add space for the timestamp to be inserted. Also ensure correct
|
|
Takashi Iwai |
a5b511 |
alignment for passing to iio_push_to_buffers_with_timestamp()
|
|
Takashi Iwai |
a5b511 |
|
|
Takashi Iwai |
a5b511 |
Fixes: a5f8c7da3dbe ("iio: adc: Add AD7768-1 ADC basic support")
|
|
Takashi Iwai |
a5b511 |
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
|
|
Takashi Iwai |
a5b511 |
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
|
|
Takashi Iwai |
a5b511 |
Link: https://lore.kernel.org/r/20210501165314.511954-2-jic23@kernel.org
|
|
Takashi Iwai |
a5b511 |
Cc: <Stable@vger.kernel.org>
|
|
Takashi Iwai |
a5b511 |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
a5b511 |
|
|
Takashi Iwai |
a5b511 |
---
|
|
Takashi Iwai |
a5b511 |
drivers/iio/adc/ad7768-1.c | 8 ++++++--
|
|
Takashi Iwai |
a5b511 |
1 file changed, 6 insertions(+), 2 deletions(-)
|
|
Takashi Iwai |
a5b511 |
|
|
Takashi Iwai |
a5b511 |
diff --git a/drivers/iio/adc/ad7768-1.c b/drivers/iio/adc/ad7768-1.c
|
|
Takashi Iwai |
a5b511 |
index c945f1349623..60f21fed6dcb 100644
|
|
Takashi Iwai |
a5b511 |
--- a/drivers/iio/adc/ad7768-1.c
|
|
Takashi Iwai |
a5b511 |
+++ b/drivers/iio/adc/ad7768-1.c
|
|
Takashi Iwai |
a5b511 |
@@ -167,6 +167,10 @@ struct ad7768_state {
|
|
Takashi Iwai |
a5b511 |
* transfer buffers to live in their own cache lines.
|
|
Takashi Iwai |
a5b511 |
*/
|
|
Takashi Iwai |
a5b511 |
union {
|
|
Takashi Iwai |
a5b511 |
+ struct {
|
|
Takashi Iwai |
a5b511 |
+ __be32 chan;
|
|
Takashi Iwai |
a5b511 |
+ s64 timestamp;
|
|
Takashi Iwai |
a5b511 |
+ } scan;
|
|
Takashi Iwai |
a5b511 |
__be32 d32;
|
|
Takashi Iwai |
a5b511 |
u8 d8[2];
|
|
Takashi Iwai |
a5b511 |
} data ____cacheline_aligned;
|
|
Takashi Iwai |
a5b511 |
@@ -469,11 +473,11 @@ static irqreturn_t ad7768_trigger_handler(int irq, void *p)
|
|
Takashi Iwai |
a5b511 |
|
|
Takashi Iwai |
a5b511 |
mutex_lock(&st->lock);
|
|
Takashi Iwai |
a5b511 |
|
|
Takashi Iwai |
a5b511 |
- ret = spi_read(st->spi, &st->data.d32, 3);
|
|
Takashi Iwai |
a5b511 |
+ ret = spi_read(st->spi, &st->data.scan.chan, 3);
|
|
Takashi Iwai |
a5b511 |
if (ret < 0)
|
|
Takashi Iwai |
a5b511 |
goto err_unlock;
|
|
Takashi Iwai |
a5b511 |
|
|
Takashi Iwai |
a5b511 |
- iio_push_to_buffers_with_timestamp(indio_dev, &st->data.d32,
|
|
Takashi Iwai |
a5b511 |
+ iio_push_to_buffers_with_timestamp(indio_dev, &st->data.scan,
|
|
Takashi Iwai |
a5b511 |
iio_get_time_ns(indio_dev));
|
|
Takashi Iwai |
a5b511 |
|
|
Takashi Iwai |
a5b511 |
iio_trigger_notify_done(indio_dev->trig);
|
|
Takashi Iwai |
a5b511 |
--
|
|
Takashi Iwai |
a5b511 |
2.26.2
|
|
Takashi Iwai |
a5b511 |
|