Add a iounmap() to release the memory allocated by
clkgen_get_register_base() in error path.
Fixes: b9b8e614b580 ("clk: st: Support for PLLs inside ClockGenA(s)")
Cc: stable@vger.kernel.org
Signed-off-by: Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
---
drivers/clk/st/clkgen-pll.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/st/clkgen-pll.c b/drivers/clk/st/clkgen-pll.c
index 4ff9b35fe399..0239835b4015 100644
--- a/drivers/clk/st/clkgen-pll.c
+++ b/drivers/clk/st/clkgen-pll.c
@@ -778,8 +778,8 @@ static void __init clkgen_c32_pll_setup(struct device_node *np,
pll_clk = clkgen_pll_register(parent_name, datac->data, pll_base, pll_flags,
np->name, datac->data->lock);
- return;
if (IS_ERR(pll_clk))
+ goto err_unmap;
pll_name = __clk_get_name(pll_clk);
@@ -829,7 +829,11 @@ static void __init clkgen_c32_pll_setup(struct device_node *np,
kfree(pll_name);
kfree(clk_data->clks);
kfree(clk_data);
+err_unmap:
+ if (pll_base)
+ iounmap(pll_base);
}
+
static void __init clkgen_c32_pll0_setup(struct device_node *np)
{
clkgen_c32_pll_setup(np,
--
2.25.1