Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

iio: accel: Use iio_push_to_buffers_with_ts() to provide length for runtime checks.

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>

+31 -28
+2 -2
drivers/iio/accel/adxl355_core.c
··· 666 666 if (ret) 667 667 goto out_unlock_notify; 668 668 669 - iio_push_to_buffers_with_timestamp(indio_dev, &data->buffer, 670 - pf->timestamp); 669 + iio_push_to_buffers_with_ts(indio_dev, &data->buffer, 670 + sizeof(data->buffer), pf->timestamp); 671 671 672 672 out_unlock_notify: 673 673 mutex_unlock(&data->lock);
+1 -1
drivers/iio/accel/bma180.c
··· 887 887 888 888 mutex_unlock(&data->mutex); 889 889 890 - iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, time_ns); 890 + iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan), time_ns); 891 891 err: 892 892 iio_trigger_notify_done(indio_dev->trig); 893 893
+2 -2
drivers/iio/accel/bma220_spi.c
··· 103 103 if (ret < 0) 104 104 goto err; 105 105 106 - iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, 107 - pf->timestamp); 106 + iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan), 107 + pf->timestamp); 108 108 err: 109 109 mutex_unlock(&data->lock); 110 110 iio_trigger_notify_done(indio_dev->trig);
+3 -2
drivers/iio/accel/bma400_core.c
··· 1591 1591 data->buffer.temperature = temp; 1592 1592 } 1593 1593 1594 - iio_push_to_buffers_with_timestamp(indio_dev, &data->buffer, 1595 - iio_get_time_ns(indio_dev)); 1594 + iio_push_to_buffers_with_ts(indio_dev, &data->buffer, 1595 + sizeof(data->buffer), 1596 + iio_get_time_ns(indio_dev)); 1596 1597 1597 1598 mutex_unlock(&data->mutex); 1598 1599 iio_trigger_notify_done(indio_dev->trig);
+2 -2
drivers/iio/accel/fxls8962af-core.c
··· 983 983 sizeof(data->scan.channels[0])); 984 984 } 985 985 986 - iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, 987 - tstamp); 986 + iio_push_to_buffers_with_ts(indio_dev, &data->scan, 987 + sizeof(data->scan), tstamp); 988 988 989 989 tstamp += sample_period; 990 990 }
+2 -2
drivers/iio/accel/kxcjk-1013.c
··· 1253 1253 if (ret < 0) 1254 1254 goto err; 1255 1255 1256 - iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, 1257 - data->timestamp); 1256 + iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan), 1257 + data->timestamp); 1258 1258 err: 1259 1259 iio_trigger_notify_done(indio_dev->trig); 1260 1260
+2 -3
drivers/iio/accel/kxsd9.c
··· 229 229 goto out; 230 230 } 231 231 232 - iio_push_to_buffers_with_timestamp(indio_dev, 233 - &hw_values, 234 - iio_get_time_ns(indio_dev)); 232 + iio_push_to_buffers_with_ts(indio_dev, &hw_values, sizeof(hw_values), 233 + iio_get_time_ns(indio_dev)); 235 234 out: 236 235 iio_trigger_notify_done(indio_dev->trig); 237 236
+3 -2
drivers/iio/accel/mma7455_core.c
··· 103 103 if (ret) 104 104 goto done; 105 105 106 - iio_push_to_buffers_with_timestamp(indio_dev, &mma7455->scan, 107 - iio_get_time_ns(indio_dev)); 106 + iio_push_to_buffers_with_ts(indio_dev, &mma7455->scan, 107 + sizeof(mma7455->scan), 108 + iio_get_time_ns(indio_dev)); 108 109 109 110 done: 110 111 iio_trigger_notify_done(indio_dev->trig);
+3 -2
drivers/iio/accel/mma8452.c
··· 1103 1103 if (ret < 0) 1104 1104 goto done; 1105 1105 1106 - iio_push_to_buffers_with_timestamp(indio_dev, &data->buffer, 1107 - iio_get_time_ns(indio_dev)); 1106 + iio_push_to_buffers_with_ts(indio_dev, &data->buffer, 1107 + sizeof(data->buffer), 1108 + iio_get_time_ns(indio_dev)); 1108 1109 1109 1110 done: 1110 1111 iio_trigger_notify_done(indio_dev->trig);
+2 -2
drivers/iio/accel/msa311.c
··· 919 919 920 920 mutex_unlock(&msa311->lock); 921 921 922 - iio_push_to_buffers_with_timestamp(indio_dev, &buf, 923 - iio_get_time_ns(indio_dev)); 922 + iio_push_to_buffers_with_ts(indio_dev, &buf, sizeof(buf), 923 + iio_get_time_ns(indio_dev)); 924 924 925 925 notify_done: 926 926 iio_trigger_notify_done(indio_dev->trig);
+2 -2
drivers/iio/accel/mxc4005.c
··· 335 335 if (ret < 0) 336 336 goto err; 337 337 338 - iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, 339 - pf->timestamp); 338 + iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan), 339 + pf->timestamp); 340 340 341 341 err: 342 342 iio_trigger_notify_done(indio_dev->trig);
+3 -2
drivers/iio/accel/sca3300.c
··· 505 505 channels[i++] = val; 506 506 } 507 507 508 - iio_push_to_buffers_with_timestamp(indio_dev, data->buffer, 509 - iio_get_time_ns(indio_dev)); 508 + iio_push_to_buffers_with_ts(indio_dev, data->buffer, 509 + sizeof(data->buffer), 510 + iio_get_time_ns(indio_dev)); 510 511 out: 511 512 iio_trigger_notify_done(indio_dev->trig); 512 513
+2 -2
drivers/iio/accel/stk8312.c
··· 460 460 } 461 461 mutex_unlock(&data->lock); 462 462 463 - iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, 464 - pf->timestamp); 463 + iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan), 464 + pf->timestamp); 465 465 err: 466 466 iio_trigger_notify_done(indio_dev->trig); 467 467
+2 -2
drivers/iio/accel/stk8ba50.c
··· 340 340 data->scan.chans[i++] = ret; 341 341 } 342 342 } 343 - iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, 344 - pf->timestamp); 343 + iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan), 344 + pf->timestamp); 345 345 err: 346 346 mutex_unlock(&data->lock); 347 347 iio_trigger_notify_done(indio_dev->trig);