(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 <[email protected]>
> Signed-off-by: Jonathan Cameron <[email protected]>
> Signed-off-by: Sasha Levin <[email protected]>
> ---
>  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

Attachment: signature.asc
Description: Digital signature

Reply via email to