]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: accel: Use iio_push_to_buffers_with_ts() to provide length for runtime checks.
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 13 Apr 2025 10:34:33 +0000 (11:34 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 21 May 2025 13:20:26 +0000 (14:20 +0100)
This new function allows us to perform debug checks in the helper to ensure
that the overrun does not occur.  Use it in all the simple cases where
either a static buffer or a structure is used in the drivers.

Reviewed-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20250413103443.2420727-11-jic23@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
14 files changed:
drivers/iio/accel/adxl355_core.c
drivers/iio/accel/bma180.c
drivers/iio/accel/bma220_spi.c
drivers/iio/accel/bma400_core.c
drivers/iio/accel/fxls8962af-core.c
drivers/iio/accel/kxcjk-1013.c
drivers/iio/accel/kxsd9.c
drivers/iio/accel/mma7455_core.c
drivers/iio/accel/mma8452.c
drivers/iio/accel/msa311.c
drivers/iio/accel/mxc4005.c
drivers/iio/accel/sca3300.c
drivers/iio/accel/stk8312.c
drivers/iio/accel/stk8ba50.c

index e8cd21fa77a6987363ce30de00d3767352101469..ae949ada6db5735414bd1319865f14fcb5a46633 100644 (file)
@@ -666,8 +666,8 @@ static irqreturn_t adxl355_trigger_handler(int irq, void *p)
        if (ret)
                goto out_unlock_notify;
 
-       iio_push_to_buffers_with_timestamp(indio_dev, &data->buffer,
-                                          pf->timestamp);
+       iio_push_to_buffers_with_ts(indio_dev, &data->buffer,
+                                   sizeof(data->buffer), pf->timestamp);
 
 out_unlock_notify:
        mutex_unlock(&data->lock);
index aa664a923f916004eb00560006365c3775cd89ba..93a868678722ab4c17602f7b2a2592e3343e41f1 100644 (file)
@@ -887,7 +887,7 @@ static irqreturn_t bma180_trigger_handler(int irq, void *p)
 
        mutex_unlock(&data->mutex);
 
-       iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, time_ns);
+       iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan), time_ns);
 err:
        iio_trigger_notify_done(indio_dev->trig);
 
index 978108fb74e9607aba6f4eb8fea7d94fc6f58da4..38f7498431ee7ae4f5497e826fb0b1d1a59c4ba6 100644 (file)
@@ -103,8 +103,8 @@ static irqreturn_t bma220_trigger_handler(int irq, void *p)
        if (ret < 0)
                goto err;
 
-       iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
-                                          pf->timestamp);
+       iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan),
+                                   pf->timestamp);
 err:
        mutex_unlock(&data->lock);
        iio_trigger_notify_done(indio_dev->trig);
index 23f5e1ce9cc4baf47d21c4e6aabc72a45cb4790d..85e23badf73318f3041fc5812dfed910d17b8a00 100644 (file)
@@ -1591,8 +1591,9 @@ static irqreturn_t bma400_trigger_handler(int irq, void *p)
                data->buffer.temperature = temp;
        }
 
-       iio_push_to_buffers_with_timestamp(indio_dev, &data->buffer,
-                                          iio_get_time_ns(indio_dev));
+       iio_push_to_buffers_with_ts(indio_dev, &data->buffer,
+                                   sizeof(data->buffer),
+                                   iio_get_time_ns(indio_dev));
 
        mutex_unlock(&data->mutex);
        iio_trigger_notify_done(indio_dev->trig);
index 48e4282964a0698d422df49739365648e19bdef6..6d23da3e7aa22c61f2d9348bb91d70cc5719a732 100644 (file)
@@ -983,8 +983,8 @@ static int fxls8962af_fifo_flush(struct iio_dev *indio_dev)
                               sizeof(data->scan.channels[0]));
                }
 
-               iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
-                                                  tstamp);
+               iio_push_to_buffers_with_ts(indio_dev, &data->scan,
+                                           sizeof(data->scan), tstamp);
 
                tstamp += sample_period;
        }
index f2496cad8ec25fd4df029348737d76e4e0e3440d..971b76c98606d1a3d79e90f443c43a085f9a001d 100644 (file)
@@ -1253,8 +1253,8 @@ static irqreturn_t kxcjk1013_trigger_handler(int irq, void *p)
        if (ret < 0)
                goto err;
 
-       iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
-                                          data->timestamp);
+       iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan),
+                                   data->timestamp);
 err:
        iio_trigger_notify_done(indio_dev->trig);
 
index fb14b875e20d0de9f43308aadf2fd09393cf0ed9..cfc31265cdd0f15de3473897b1d76ae5159ba200 100644 (file)
@@ -229,9 +229,8 @@ static irqreturn_t kxsd9_trigger_handler(int irq, void *p)
                goto out;
        }
 
-       iio_push_to_buffers_with_timestamp(indio_dev,
-                                          &hw_values,
-                                          iio_get_time_ns(indio_dev));
+       iio_push_to_buffers_with_ts(indio_dev, &hw_values, sizeof(hw_values),
+                                   iio_get_time_ns(indio_dev));
 out:
        iio_trigger_notify_done(indio_dev->trig);
 
index 30746621052c7e09990828355a537c3e455cebf8..a2b5bdf14ddea718df8f94d70bf14b5d238b03b7 100644 (file)
@@ -103,8 +103,9 @@ static irqreturn_t mma7455_trigger_handler(int irq, void *p)
        if (ret)
                goto done;
 
-       iio_push_to_buffers_with_timestamp(indio_dev, &mma7455->scan,
-                                          iio_get_time_ns(indio_dev));
+       iio_push_to_buffers_with_ts(indio_dev, &mma7455->scan,
+                                   sizeof(mma7455->scan),
+                                   iio_get_time_ns(indio_dev));
 
 done:
        iio_trigger_notify_done(indio_dev->trig);
index 05f5482f366efba8f5c496385c1ad7003fb79bc2..aba444a980d9dd822eaf95bff9f343fdbd50ae10 100644 (file)
@@ -1103,8 +1103,9 @@ static irqreturn_t mma8452_trigger_handler(int irq, void *p)
        if (ret < 0)
                goto done;
 
-       iio_push_to_buffers_with_timestamp(indio_dev, &data->buffer,
-                                          iio_get_time_ns(indio_dev));
+       iio_push_to_buffers_with_ts(indio_dev, &data->buffer,
+                                   sizeof(data->buffer),
+                                   iio_get_time_ns(indio_dev));
 
 done:
        iio_trigger_notify_done(indio_dev->trig);
index d31c11fbbe688a862f34b2a7f5c68cbf83611d7d..c31c53abc3d09f29d01efb7cfd31955cd88b9409 100644 (file)
@@ -919,8 +919,8 @@ static irqreturn_t msa311_buffer_thread(int irq, void *p)
 
        mutex_unlock(&msa311->lock);
 
-       iio_push_to_buffers_with_timestamp(indio_dev, &buf,
-                                          iio_get_time_ns(indio_dev));
+       iio_push_to_buffers_with_ts(indio_dev, &buf, sizeof(buf),
+                                   iio_get_time_ns(indio_dev));
 
 notify_done:
        iio_trigger_notify_done(indio_dev->trig);
index c9c4bab08a815194e6aced272c437423e88fc86f..1075c8ce0e37e1821904ec4211f0977d38f371ef 100644 (file)
@@ -335,8 +335,8 @@ static irqreturn_t mxc4005_trigger_handler(int irq, void *private)
        if (ret < 0)
                goto err;
 
-       iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
-                                          pf->timestamp);
+       iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan),
+                                   pf->timestamp);
 
 err:
        iio_trigger_notify_done(indio_dev->trig);
index 9b00a3d7056d8caf7b45bd20b2c2674d072492e2..1132bbaba75bcca525fac2f3e19f63546380fd4f 100644 (file)
@@ -505,8 +505,9 @@ static irqreturn_t sca3300_trigger_handler(int irq, void *p)
                channels[i++] = val;
        }
 
-       iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
-                                          iio_get_time_ns(indio_dev));
+       iio_push_to_buffers_with_ts(indio_dev, data->buffer,
+                                   sizeof(data->buffer),
+                                   iio_get_time_ns(indio_dev));
 out:
        iio_trigger_notify_done(indio_dev->trig);
 
index d3ff1287c01794bfc730627bb0069062d62dab02..dfac2e44191fa5af76c7045f4621eedd455e737d 100644 (file)
@@ -460,8 +460,8 @@ static irqreturn_t stk8312_trigger_handler(int irq, void *p)
        }
        mutex_unlock(&data->lock);
 
-       iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
-                                          pf->timestamp);
+       iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan),
+                                   pf->timestamp);
 err:
        iio_trigger_notify_done(indio_dev->trig);
 
index e5fed3eac2c816dfb961d4838ce3b0dfcd8eb230..05d4fd540eb2d15aca2a7990e25b71b66f757b8a 100644 (file)
@@ -340,8 +340,8 @@ static irqreturn_t stk8ba50_trigger_handler(int irq, void *p)
                        data->scan.chans[i++] = ret;
                }
        }
-       iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
-                                          pf->timestamp);
+       iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan),
+                                   pf->timestamp);
 err:
        mutex_unlock(&data->lock);
        iio_trigger_notify_done(indio_dev->trig);