Messages in this thread | | | Date | Thu, 6 Jun 2019 15:13:00 +0200 | From | Pavel Machek <> | Subject | Re: [PATCH 4.19 189/276] iio: adc: ti-ads7950: Fix improper use of mlock |
| |
(stable removed from cc list)
> Indio->mlock is used for protecting the different iio device modes. > It is currently not being used in this way. Replace the lock with > an internal lock specifically used for protecting the SPI transfer > buffer. > > Signed-off-by: Justin Chen <justinpopo6@gmail.com> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > Signed-off-by: Sasha Levin <sashal@kernel.org> > --- > drivers/iio/adc/ti-ads7950.c | 19 +++++++++++++++---- > 1 file changed, 15 insertions(+), 4 deletions(-) >
> @@ -277,6 +280,7 @@ static irqreturn_t ti_ads7950_trigger_handler(int irq, void *p) > struct ti_ads7950_state *st = iio_priv(indio_dev); > int ret; > > + mutex_lock(&st->slock); > ret = spi_sync(st->spi, &st->ring_msg); > if (ret < 0) > goto out; > @@ -285,6 +289,7 @@ static irqreturn_t ti_ads7950_trigger_handler(int irq, void *p) > iio_get_time_ns(indio_dev)); > > out: > + mutex_unlock(&st->slock); > iio_trigger_notify_done(indio_dev->trig); > > return IRQ_HANDLED;
Does trigger_handler run from interrupt context? Prototype suggests so... If so, it can not really take mutexes...
Best regards, Pavel
-- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html [unhandled content-type:application/pgp-signature] | |