> > +++ b/drivers/staging/iio/accel/adis16240.c > > @@ -229,11 +229,12 @@ static ssize_t adis16240_read_12bit_signed(struct > device *dev, > > { > > ssize_t ret; > > struct iio_dev *indio_dev = dev_to_iio_dev(dev); > > + struct adis *st = iio_priv(indio_dev); > > > > /* Take the iio_dev status lock */ > > - mutex_lock(&indio_dev->mlock); > > + mutex_lock(&st->txrx_lock); > > This unfortunately wont work. The adis_read_reg()/adis_write_reg() > functions > take the txrx_lock. So this change causes a deadlock, trying to take a > lock > that is already locked. > > Yes, it would cause deadlock. Can the lock be placed within the adis_read_reg() function and removing locks from other place? > But this lock can probably be removed. It should be safe to run the > function > multiple times in parallel. > > Same for the other changes in this patch. > Then should I remove all the locks in this file? Thanks, Varsha