lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 295/563] clk: bm1880: remove kfrees on static allocations
    Date
    From: Conor Dooley <conor.dooley@microchip.com>

    [ Upstream commit c861c1be3897845313a0df47804b1db37c7052e1 ]

    bm1880_clk_unregister_pll & bm1880_clk_unregister_div both try to
    free statically allocated variables, so remove those kfrees.

    For example, if we take L703 kfree(div_hw):
    - div_hw is a bm1880_div_hw_clock pointer
    - in bm1880_clk_register_plls this is pointed to an element of arg1:
    struct bm1880_div_hw_clock *clks
    - in the probe, where bm1880_clk_register_plls is called arg1 is
    bm1880_div_clks, defined on L371:
    static struct bm1880_div_hw_clock bm1880_div_clks[]

    Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
    Fixes: 1ab4601da55b ("clk: Add common clock driver for BM1880 SoC")
    Link: https://lore.kernel.org/r/20211223154244.1024062-1-conor.dooley@microchip.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/clk/clk-bm1880.c | 20 ++------------------
    1 file changed, 2 insertions(+), 18 deletions(-)

    diff --git a/drivers/clk/clk-bm1880.c b/drivers/clk/clk-bm1880.c
    index e6d6599d310a1..fad78a22218e8 100644
    --- a/drivers/clk/clk-bm1880.c
    +++ b/drivers/clk/clk-bm1880.c
    @@ -522,14 +522,6 @@ static struct clk_hw *bm1880_clk_register_pll(struct bm1880_pll_hw_clock *pll_cl
    return hw;
    }

    -static void bm1880_clk_unregister_pll(struct clk_hw *hw)
    -{
    - struct bm1880_pll_hw_clock *pll_hw = to_bm1880_pll_clk(hw);
    -
    - clk_hw_unregister(hw);
    - kfree(pll_hw);
    -}
    -
    static int bm1880_clk_register_plls(struct bm1880_pll_hw_clock *clks,
    int num_clks,
    struct bm1880_clock_data *data)
    @@ -555,7 +547,7 @@ static int bm1880_clk_register_plls(struct bm1880_pll_hw_clock *clks,

    err_clk:
    while (i--)
    - bm1880_clk_unregister_pll(data->hw_data.hws[clks[i].pll.id]);
    + clk_hw_unregister(data->hw_data.hws[clks[i].pll.id]);

    return PTR_ERR(hw);
    }
    @@ -695,14 +687,6 @@ static struct clk_hw *bm1880_clk_register_div(struct bm1880_div_hw_clock *div_cl
    return hw;
    }

    -static void bm1880_clk_unregister_div(struct clk_hw *hw)
    -{
    - struct bm1880_div_hw_clock *div_hw = to_bm1880_div_clk(hw);
    -
    - clk_hw_unregister(hw);
    - kfree(div_hw);
    -}
    -
    static int bm1880_clk_register_divs(struct bm1880_div_hw_clock *clks,
    int num_clks,
    struct bm1880_clock_data *data)
    @@ -729,7 +713,7 @@ static int bm1880_clk_register_divs(struct bm1880_div_hw_clock *clks,

    err_clk:
    while (i--)
    - bm1880_clk_unregister_div(data->hw_data.hws[clks[i].div.id]);
    + clk_hw_unregister(data->hw_data.hws[clks[i].div.id]);

    return PTR_ERR(hw);
    }
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-24 22:41    [W:2.583 / U:0.860 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site