Message ID | 20241214191421.94172-5-vassilisamir@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | iio: mark scan_timestamp as __private | expand |
On Sat, 14 Dec 2024 20:14:21 +0100 Vasileios Amoiridis <vassilisamir@gmail.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@gmail.com> 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;
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;
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@gmail.com> --- 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(-)