On Tue, 17 Sep 2019 19:10:23 +0300 Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> wrote: > The use of indio_dev's mlock is discouraged. The driver already defines > it's own `bus_lock` in `adis16130_spi_read()`, so using the mlock is > redundant. > > The parts supported by this chip are obsoleted anyway, so for now we just > remove mlock as part of a general cleanup, until the driver gets removed. Hmm. Removing a device driver like this which isn't in staging is going to be controversial. There may well be long term supported devices out there using it. We have no way of knowing, so my inclination will be to leave it there unless it is a significant maintenance burden. The drivers in staging are a different matter as we never made any 'promise' of supporting those! I'll hazard a guess that mlock here was cut and paste from another driver and that driver supported buffered modes. In those cases it would need to move to the utility functions to ensure we are not in buffered mode. Here your fix is right though given the driver only support sysfs reads. Applied to the togreg branch of iio.git and pushed out as testing for the autobuilders to play with it. Thanks, Jonathan > > Signed-off-by: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> > --- > drivers/iio/gyro/adis16130.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/drivers/iio/gyro/adis16130.c b/drivers/iio/gyro/adis16130.c > index de3f66f89496..79e63c8a2ea8 100644 > --- a/drivers/iio/gyro/adis16130.c > +++ b/drivers/iio/gyro/adis16130.c > @@ -76,9 +76,7 @@ static int adis16130_read_raw(struct iio_dev *indio_dev, > switch (mask) { > case IIO_CHAN_INFO_RAW: > /* Take the iio_dev status lock */ > - mutex_lock(&indio_dev->mlock); > ret = adis16130_spi_read(indio_dev, chan->address, &temp); > - mutex_unlock(&indio_dev->mlock); > if (ret) > return ret; > *val = temp;