lkml.org 
[lkml]   [2021]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.13 135/800] media: sh_vou: fix pm_runtime_get_sync() usage count
    Date
    From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

    [ Upstream commit 6e8b1526db164c9d4b9dacfb9bc48e365d7c4860 ]

    The pm_runtime_get_sync() internally increments the
    dev->power.usage_count without decrementing it, even on errors.
    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")
    in order to properly decrement the usage counter, avoiding
    a potential PM usage counter leak.

    While here, check if the PM runtime error was caught at open time.

    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/media/platform/sh_vou.c | 6 +++++-
    1 file changed, 5 insertions(+), 1 deletion(-)

    diff --git a/drivers/media/platform/sh_vou.c b/drivers/media/platform/sh_vou.c
    index 4ac48441f22c..ca4310e26c49 100644
    --- a/drivers/media/platform/sh_vou.c
    +++ b/drivers/media/platform/sh_vou.c
    @@ -1133,7 +1133,11 @@ static int sh_vou_open(struct file *file)
    if (v4l2_fh_is_singular_file(file) &&
    vou_dev->status == SH_VOU_INITIALISING) {
    /* First open */
    - pm_runtime_get_sync(vou_dev->v4l2_dev.dev);
    + err = pm_runtime_resume_and_get(vou_dev->v4l2_dev.dev);
    + if (err < 0) {
    + v4l2_fh_release(file);
    + goto done_open;
    + }
    err = sh_vou_hw_init(vou_dev);
    if (err < 0) {
    pm_runtime_put(vou_dev->v4l2_dev.dev);
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-12 10:19    [W:4.083 / U:0.724 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site