lkml.org 
[lkml]   [2020]   [Dec]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 120/717] media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_dec_pm()
    Date
    From: Yu Kuai <yukuai3@huawei.com>

    [ Upstream commit 5d4fa2c50125c9cda9e380d89268757cc5fa743d ]

    if of_find_device_by_node() succeed, mtk_vcodec_init_dec_pm() doesn't have
    a corresponding put_device(). Thus add jump target to fix the exception
    handling for this function implementation.

    Fixes: 590577a4e525 ("[media] vcodec: mediatek: Add Mediatek V4L2 Video Decoder Driver")
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    .../platform/mtk-vcodec/mtk_vcodec_dec_pm.c | 18 ++++++++++++------
    1 file changed, 12 insertions(+), 6 deletions(-)

    diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c
    index 36dfe3fc056a4..f6a6b42865fbd 100644
    --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c
    +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c
    @@ -47,11 +47,14 @@ int mtk_vcodec_init_dec_pm(struct mtk_vcodec_dev *mtkdev)
    dec_clk->clk_info = devm_kcalloc(&pdev->dev,
    dec_clk->clk_num, sizeof(*clk_info),
    GFP_KERNEL);
    - if (!dec_clk->clk_info)
    - return -ENOMEM;
    + if (!dec_clk->clk_info) {
    + ret = -ENOMEM;
    + goto put_device;
    + }
    } else {
    mtk_v4l2_err("Failed to get vdec clock count");
    - return -EINVAL;
    + ret = -EINVAL;
    + goto put_device;
    }

    for (i = 0; i < dec_clk->clk_num; i++) {
    @@ -60,19 +63,22 @@ int mtk_vcodec_init_dec_pm(struct mtk_vcodec_dev *mtkdev)
    "clock-names", i, &clk_info->clk_name);
    if (ret) {
    mtk_v4l2_err("Failed to get clock name id = %d", i);
    - return ret;
    + goto put_device;
    }
    clk_info->vcodec_clk = devm_clk_get(&pdev->dev,
    clk_info->clk_name);
    if (IS_ERR(clk_info->vcodec_clk)) {
    mtk_v4l2_err("devm_clk_get (%d)%s fail", i,
    clk_info->clk_name);
    - return PTR_ERR(clk_info->vcodec_clk);
    + ret = PTR_ERR(clk_info->vcodec_clk);
    + goto put_device;
    }
    }

    pm_runtime_enable(&pdev->dev);
    -
    + return 0;
    +put_device:
    + put_device(pm->larbvdec);
    return ret;
    }

    --
    2.27.0


    \
     
     \ /
      Last update: 2020-12-28 16:19    [W:2.185 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site