lkml.org 
[lkml]   [2020]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 37/60] MIPS: Alchemy: Fix memleak in alchemy_clk_setup_cpu
    Date
    From: Zhang Qilong <zhangqilong3@huawei.com>

    [ Upstream commit ac3b57adf87ad9bac7e33ca26bbbb13fae1ed62b ]

    If the clk_register fails, we should free h before
    function returns to prevent memleak.

    Fixes: 474402291a0ad ("MIPS: Alchemy: clock framework integration of onchip clocks")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/mips/alchemy/common/clock.c | 9 ++++++++-
    1 file changed, 8 insertions(+), 1 deletion(-)

    diff --git a/arch/mips/alchemy/common/clock.c b/arch/mips/alchemy/common/clock.c
    index a83c7b7e2eb1f..c5e49bb79c004 100644
    --- a/arch/mips/alchemy/common/clock.c
    +++ b/arch/mips/alchemy/common/clock.c
    @@ -152,6 +152,7 @@ static struct clk __init *alchemy_clk_setup_cpu(const char *parent_name,
    {
    struct clk_init_data id;
    struct clk_hw *h;
    + struct clk *clk;

    h = kzalloc(sizeof(*h), GFP_KERNEL);
    if (!h)
    @@ -164,7 +165,13 @@ static struct clk __init *alchemy_clk_setup_cpu(const char *parent_name,
    id.ops = &alchemy_clkops_cpu;
    h->init = &id;

    - return clk_register(NULL, h);
    + clk = clk_register(NULL, h);
    + if (IS_ERR(clk)) {
    + pr_err("failed to register clock\n");
    + kfree(h);
    + }
    +
    + return clk;
    }

    /* AUXPLLs ************************************************************/
    --
    2.27.0


    \
     
     \ /
      Last update: 2020-11-23 14:41    [W:4.056 / U:0.288 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site