[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241130141954.07423793@jic23-huawei>
Date: Sat, 30 Nov 2024 14:19:54 +0000
From: Jonathan Cameron <jic23@...nel.org>
To: Vasileios Amoiridis <vassilisamir@...il.com>
Cc: lars@...afoo.de, krzysztof.kozlowski@...aro.org, nuno.sa@...log.com,
u.kleine-koenig@...libre.com, abhashkumarjha123@...il.com,
jstephan@...libre.com, dlechner@...libre.com, linux-iio@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH RFC 6/6] iio: core: mark scan_timestamp as __private
On Sat, 30 Nov 2024 01:27:10 +0100
Vasileios Amoiridis <vassilisamir@...il.com> 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@...il.com>
> ---
> drivers/iio/industrialio-buffer.c | 2 +-
> include/linux/iio/iio.h | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c
> index 8104696cd475..c332741f3cf4 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/iio.h b/include/linux/iio/iio.h
> index 5661794d1127..669b4ef1280d 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;
> @@ -908,7 +908,7 @@ int iio_active_scan_mask_index(struct iio_dev *indio_dev);
> */
> static inline bool iio_is_soft_ts_enabled(const struct iio_dev *indio_dev)
> {
> - return indio_dev->scan_timestamp;
> + return ACCESS_PRIVATE(indio_dev, scan_timestamp);
If we only end up with one use of this (based on feedback on other drivers)
I'd tempted to deliberately not provide this convenience function and instead
just use ACCESS_PRIVATE() directly in iio_push_to_buffers_with_timestamp()
Nice work. Particularly by highlighting some 'odd corners' in drivers that
probably make no real sense to keep ;)
Jonathan
> }
>
> ssize_t iio_format_value(char *buf, unsigned int type, int size, int *vals);
Powered by blists - more mailing lists