]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: light: tcs3472: Use iio_push_to_buffers_with_ts() to allow source size runtime...
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 2 Aug 2025 16:44:33 +0000 (17:44 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 16 Aug 2025 14:57:26 +0000 (15:57 +0100)
Use iio_push_to_buffers_with_ts() to allow source size runtime check.

Also move the structure used as the source to the stack as it is only 16
bytes and not the target of an DMA or similar.

Reviewed-by: Andy Shevchenko <andy@kernel.org>
Link: https://patch.msgid.link/20250802164436.515988-14-jic23@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/light/tcs3472.c

index 0f8bf8503edd96a3ddfea0b2e661de7dce2b004c..12429a3261b38e305024f0c2d6943f4a3101c436 100644 (file)
@@ -64,11 +64,6 @@ struct tcs3472_data {
        u8 control;
        u8 atime;
        u8 apers;
-       /* Ensure timestamp is naturally aligned */
-       struct {
-               u16 chans[4];
-               aligned_s64 timestamp;
-       } scan;
 };
 
 static const struct iio_event_spec tcs3472_events[] = {
@@ -377,6 +372,11 @@ static irqreturn_t tcs3472_trigger_handler(int irq, void *p)
        struct iio_dev *indio_dev = pf->indio_dev;
        struct tcs3472_data *data = iio_priv(indio_dev);
        int i, j = 0;
+       /* Ensure timestamp is naturally aligned */
+       struct {
+               u16 chans[4];
+               aligned_s64 timestamp;
+       } scan = { };
 
        int ret = tcs3472_req_data(data);
        if (ret < 0)
@@ -388,10 +388,10 @@ static irqreturn_t tcs3472_trigger_handler(int irq, void *p)
                if (ret < 0)
                        goto done;
 
-               data->scan.chans[j++] = ret;
+               scan.chans[j++] = ret;
        }
 
-       iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
+       iio_push_to_buffers_with_ts(indio_dev, &scan, sizeof(scan),
                iio_get_time_ns(indio_dev));
 
 done: