clk: mediatek: Fix memory leak on clock init fail

mtk_clk_register_composite() may leak memory due to some error
handling path don't free all allocated memory. This patch
free all pointers that may allocate memory before error return.
And it's safe because kfree() can handle NULL pointers.

Signed-off-by: James Liao <jamesjj.liao@mediatek.com>
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
This commit is contained in:
James Liao 2016-01-08 16:15:33 +08:00 committed by Stephen Boyd
parent 5fd9c05c84
commit 4974259e18
1 changed files with 4 additions and 2 deletions

View File

@ -209,12 +209,14 @@ struct clk * __init mtk_clk_register_composite(const struct mtk_composite *mc,
mc->flags); mc->flags);
if (IS_ERR(clk)) { if (IS_ERR(clk)) {
kfree(gate); ret = PTR_ERR(clk);
kfree(mux); goto err_out;
} }
return clk; return clk;
err_out: err_out:
kfree(div);
kfree(gate);
kfree(mux); kfree(mux);
return ERR_PTR(ret); return ERR_PTR(ret);