Re: [PATCH v2 00/11] iio: imu: adis: cleanup lock usage

From: Jonathan Cameron
Date: Sat Nov 23 2019 - 07:22:29 EST


On Fri, 22 Nov 2019 15:24:10 +0200
Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> wrote:

> There is a general effort for cleaning up `indio_dev->mlock` usage in IIO
> drivers. As part of that some ADIS drivers also need to do that.
>
> This changeset does a little more, by reworking the `txrx_lock` from the
> ADIS library to be used as a general `state_lock` to protect state between
> consecutive read/write ops.
>
> As such, all users of the ADIS lib have been verified to have their usage
> of mlock checked. Some just needed the mlock usage removed (as done in
>
> Changelog v1 -> v2:
> * this patchset has got more testing in our repo since last time - also
> found a bug in v1
> * tested with `make ARCH=x86_64 allmodconfig` ; seems this is how Greg
> found the issue and we didn't
>
> Alexandru Ardelean (11):
> iio: imu: adis: rename txrx_lock -> state_lock
> iio: imu: adis: add unlocked read/write function versions
> iio: imu: adis[16480]: group RW into a single lock in
> adis_enable_irq()
> iio: imu: adis: create an unlocked version of adis_check_status()
> iio: imu: adis: create an unlocked version of adis_reset()
> iio: imu: adis: protect initial startup routine with state lock
> iio: imu: adis: group single conversion under a single state lock
> iio: imu: adis16400: rework locks using ADIS library's state lock
> iio: gyro: adis16136: rework locks using ADIS library's state lock
> iio: imu: adis16480: use state lock for filter freq set
> iio: gyro: adis16260: replace mlock with ADIS lib's state_lock
>
> drivers/iio/gyro/adis16136.c | 31 ++++---
> drivers/iio/gyro/adis16260.c | 6 +-
> drivers/iio/imu/adis.c | 94 +++++++++++----------
> drivers/iio/imu/adis16400.c | 51 ++++++------
> drivers/iio/imu/adis16480.c | 17 ++--
> drivers/iio/imu/adis_buffer.c | 4 +-
> include/linux/iio/imu/adis.h | 150 ++++++++++++++++++++++++++++++++--
> 7 files changed, 258 insertions(+), 95 deletions(-)
>

All applied to the togreg branch of iio.git and pushed out as testing to
get some build coverage.

Thanks,

Jonathan