diff mbox series

[v2] clk: ti: clkctrl: fix the missed kfree() for _ti_omap4_clkctrl_setup()

Message ID 20200728061846.68281-1-jingxiangfeng@huawei.com (mailing list archive)
State Changes Requested, archived
Headers show
Series [v2] clk: ti: clkctrl: fix the missed kfree() for _ti_omap4_clkctrl_setup() | expand

Commit Message

Jing Xiangfeng July 28, 2020, 6:18 a.m. UTC
_ti_omap4_clkctrl_setup() misses to call kfree() in an error path. Jump
to cleanup to fix it.

Fixes: 6c3090520554 ("clk: ti: clkctrl: Fix hidden dependency to node name")
Signed-off-by: Jing Xiangfeng <jingxiangfeng@huawei.com>
---
 drivers/clk/ti/clkctrl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Stephen Boyd Oct. 14, 2020, 5:19 p.m. UTC | #1
Quoting Jing Xiangfeng (2020-07-27 23:18:46)
> _ti_omap4_clkctrl_setup() misses to call kfree() in an error path. Jump
> to cleanup to fix it.
> 
> Fixes: 6c3090520554 ("clk: ti: clkctrl: Fix hidden dependency to node name")
> Signed-off-by: Jing Xiangfeng <jingxiangfeng@huawei.com>
> ---
>  drivers/clk/ti/clkctrl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/ti/clkctrl.c b/drivers/clk/ti/clkctrl.c
> index 864c484bde1b..a562261eb061 100644
> --- a/drivers/clk/ti/clkctrl.c
> +++ b/drivers/clk/ti/clkctrl.c
> @@ -656,7 +656,7 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node)
>  
>                 hw = kzalloc(sizeof(*hw), GFP_KERNEL);
>                 if (!hw)
> -                       return;
> +                       goto cleanup;

Nobody reviewed this so I didn't apply it. I looked closer and it seems
that this may fix one leak but this is inside a while loop so presumably
we need to goto cleanup and unwind the loop of allocations? Put another
way, there is more work to do here.
diff mbox series

Patch

diff --git a/drivers/clk/ti/clkctrl.c b/drivers/clk/ti/clkctrl.c
index 864c484bde1b..a562261eb061 100644
--- a/drivers/clk/ti/clkctrl.c
+++ b/drivers/clk/ti/clkctrl.c
@@ -656,7 +656,7 @@  static void __init _ti_omap4_clkctrl_setup(struct device_node *node)
 
 		hw = kzalloc(sizeof(*hw), GFP_KERNEL);
 		if (!hw)
-			return;
+			goto cleanup;
 
 		hw->enable_reg.ptr = provider->base + reg_data->offset;