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>
Reviewed-by: Brian Masney <bmasney@redhat.com>
---
drivers/clk/st/clkgen-pll.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/st/clkgen-pll.c b/drivers/clk/st/clkgen-pll.c
index 566eb7e8a73c..073180754a56 100644
--- a/drivers/clk/st/clkgen-pll.c
+++ b/drivers/clk/st/clkgen-pll.c
@@ -779,7 +779,7 @@ 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);
if (IS_ERR(pll_clk))
- return;
+ goto err_unmap;
pll_name = __clk_get_name(pll_clk);
@@ -829,6 +829,9 @@ 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)
--
2.25.1