lkml.org 
[lkml]   [2021]   [Apr]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 12/79] media: renesas-ceu: Properly check for PM errors
    Date
    Right now, the driver just assumes that PM runtime resume
    worked, but it may fail.

    Well, the pm_runtime_get_sync() internally increments the
    dev->power.usage_count without decrementing it, even on errors.

    So, using it is tricky. Let's replace it by the new
    pm_runtime_resume_and_get(), introduced by:
    commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter")
    and return an error if something bad happens.

    This should ensure that the PM runtime usage_count will be
    properly decremented if an error happens at open time.

    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    ---
    drivers/media/platform/renesas-ceu.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/media/platform/renesas-ceu.c b/drivers/media/platform/renesas-ceu.c
    index cd137101d41e..17f01b6e3fe0 100644
    --- a/drivers/media/platform/renesas-ceu.c
    +++ b/drivers/media/platform/renesas-ceu.c
    @@ -1099,10 +1099,10 @@ static int ceu_open(struct file *file)

    mutex_lock(&ceudev->mlock);
    /* Causes soft-reset and sensor power on on first open */
    - pm_runtime_get_sync(ceudev->dev);
    + ret = pm_runtime_resume_and_get(ceudev->dev);
    mutex_unlock(&ceudev->mlock);

    - return 0;
    + return ret;
    }

    static int ceu_release(struct file *file)
    --
    2.30.2
    \
     
     \ /
      Last update: 2021-04-27 12:17    [W:3.197 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site