Re: [PATCH v2 4/4] iio: core: mark scan_timestamp as __private

From: Jonathan Cameron
Date: Thu Dec 19 2024 - 12:52:37 EST


On Sat, 14 Dec 2024 20:14:21 +0100
Vasileios Amoiridis <vassilisamir@xxxxxxxxx> wrote:

> Since there are no more direct accesses to the indio_dev->scan_timestamp
> value, it can be marked as __private and use the macro ACCESS_PRIVATE()
> in order to access it. Like this, static checkers will be able to inform
> in case someone tries to either write to the value, or read its value
> directly.
>
> Signed-off-by: Vasileios Amoiridis <vassilisamir@xxxxxxxxx>
Applied. Thanks

I'll push this out as testing shortly and we can see if 0-day finds
any problems with it.

Jonathan



> ---
> drivers/iio/industrialio-buffer.c | 2 +-
> include/linux/iio/buffer.h | 2 +-
> include/linux/iio/iio.h | 2 +-
> 3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c
> index 2708f87df719..a80f7cc25a27 100644
> --- a/drivers/iio/industrialio-buffer.c
> +++ b/drivers/iio/industrialio-buffer.c
> @@ -1137,7 +1137,7 @@ static int iio_enable_buffers(struct iio_dev *indio_dev,
> int ret;
>
> indio_dev->active_scan_mask = config->scan_mask;
> - indio_dev->scan_timestamp = config->scan_timestamp;
> + ACCESS_PRIVATE(indio_dev, scan_timestamp) = config->scan_timestamp;
> indio_dev->scan_bytes = config->scan_bytes;
> iio_dev_opaque->currentmode = config->mode;
>
> diff --git a/include/linux/iio/buffer.h b/include/linux/iio/buffer.h
> index 418b1307d3f2..3b8d618bb3df 100644
> --- a/include/linux/iio/buffer.h
> +++ b/include/linux/iio/buffer.h
> @@ -37,7 +37,7 @@ int iio_pop_from_buffer(struct iio_buffer *buffer, void *data);
> static inline int iio_push_to_buffers_with_timestamp(struct iio_dev *indio_dev,
> void *data, int64_t timestamp)
> {
> - if (indio_dev->scan_timestamp) {
> + if (ACCESS_PRIVATE(indio_dev, scan_timestamp)) {
> size_t ts_offset = indio_dev->scan_bytes / sizeof(int64_t) - 1;
> ((int64_t *)data)[ts_offset] = timestamp;
> }
> diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
> index ae65890d4567..56161e02f002 100644
> --- a/include/linux/iio/iio.h
> +++ b/include/linux/iio/iio.h
> @@ -611,7 +611,7 @@ struct iio_dev {
> const unsigned long *available_scan_masks;
> unsigned int __private masklength;
> const unsigned long *active_scan_mask;
> - bool scan_timestamp;
> + bool __private scan_timestamp;
> struct iio_trigger *trig;
> struct iio_poll_func *pollfunc;
> struct iio_poll_func *pollfunc_event;