lkml.org 
[lkml]   [2019]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [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]
    \
     
     \ /
      Last update: 2019-06-06 15:14    [W:4.084 / U:0.152 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site