Message ID | 20200728061846.68281-1-jingxiangfeng@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] clk: ti: clkctrl: fix the missed kfree() for _ti_omap4_clkctrl_setup() | expand |
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 --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;
_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(-)