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: chemical: 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-13-jic23@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

+17 -14
+3 -2
drivers/iio/chemical/atlas-sensor.c
··· 458 458 &data->buffer, sizeof(__be32) * channels); 459 459 460 460 if (!ret) 461 - iio_push_to_buffers_with_timestamp(indio_dev, data->buffer, 462 - iio_get_time_ns(indio_dev)); 461 + iio_push_to_buffers_with_ts(indio_dev, data->buffer, 462 + sizeof(data->buffer), 463 + iio_get_time_ns(indio_dev)); 463 464 464 465 iio_trigger_notify_done(indio_dev->trig); 465 466
+2 -2
drivers/iio/chemical/bme680_core.c
··· 1120 1120 gas_range = FIELD_GET(BME680_GAS_RANGE_MASK, gas_regs_val); 1121 1121 data->scan.chan[3] = bme680_compensate_gas(data, adc_gas_res, gas_range); 1122 1122 1123 - iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, 1124 - iio_get_time_ns(indio_dev)); 1123 + iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan), 1124 + iio_get_time_ns(indio_dev)); 1125 1125 out: 1126 1126 iio_trigger_notify_done(indio_dev->trig); 1127 1127 return IRQ_HANDLED;
+2 -2
drivers/iio/chemical/ccs811.c
··· 343 343 goto err; 344 344 } 345 345 346 - iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, 347 - iio_get_time_ns(indio_dev)); 346 + iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan), 347 + iio_get_time_ns(indio_dev)); 348 348 349 349 err: 350 350 iio_trigger_notify_done(indio_dev->trig);
+2 -2
drivers/iio/chemical/ens160_core.c
··· 267 267 if (ret) 268 268 goto err; 269 269 270 - iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, 271 - pf->timestamp); 270 + iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan), 271 + pf->timestamp); 272 272 err: 273 273 iio_trigger_notify_done(indio_dev->trig); 274 274
+2 -2
drivers/iio/chemical/pms7003.c
··· 126 126 pms7003_get_pm(frame->data + PMS7003_PM10_OFFSET); 127 127 mutex_unlock(&state->lock); 128 128 129 - iio_push_to_buffers_with_timestamp(indio_dev, &state->scan, 130 - iio_get_time_ns(indio_dev)); 129 + iio_push_to_buffers_with_ts(indio_dev, &state->scan, sizeof(state->scan), 130 + iio_get_time_ns(indio_dev)); 131 131 err: 132 132 iio_trigger_notify_done(indio_dev->trig); 133 133
+2 -1
drivers/iio/chemical/scd30_core.c
··· 601 601 if (ret) 602 602 goto out; 603 603 604 - iio_push_to_buffers_with_timestamp(indio_dev, &scan, iio_get_time_ns(indio_dev)); 604 + iio_push_to_buffers_with_ts(indio_dev, &scan, sizeof(scan), 605 + iio_get_time_ns(indio_dev)); 605 606 out: 606 607 iio_trigger_notify_done(indio_dev->trig); 607 608 return IRQ_HANDLED;
+2 -1
drivers/iio/chemical/scd4x.c
··· 675 675 if (ret) 676 676 goto out; 677 677 678 - iio_push_to_buffers_with_timestamp(indio_dev, &scan, iio_get_time_ns(indio_dev)); 678 + iio_push_to_buffers_with_ts(indio_dev, &scan, sizeof(scan), 679 + iio_get_time_ns(indio_dev)); 679 680 out: 680 681 iio_trigger_notify_done(indio_dev->trig); 681 682 return IRQ_HANDLED;
+2 -2
drivers/iio/chemical/sps30.c
··· 117 117 if (ret) 118 118 goto err; 119 119 120 - iio_push_to_buffers_with_timestamp(indio_dev, &scan, 121 - iio_get_time_ns(indio_dev)); 120 + iio_push_to_buffers_with_ts(indio_dev, &scan, sizeof(scan), 121 + iio_get_time_ns(indio_dev)); 122 122 err: 123 123 iio_trigger_notify_done(indio_dev->trig); 124 124