summaryrefslogtreecommitdiffstats
path: root/drivers/clk/mvebu/common.c
diff options
context:
space:
mode:
authorJisheng Zhang <jszhang@marvell.com>2013-08-23 10:34:01 +0800
committerMike Turquette <mturquette@linaro.org>2013-08-23 11:44:03 -0700
commitf98d007d332b819b7777bf280a07fc3d2dfe2f7a (patch)
tree536d498f579458def7a41c60dc74b132699349b3 /drivers/clk/mvebu/common.c
parent89ac8d7ae1cde0f8c7a2f85c2e3b475d54aa9163 (diff)
downloadop-kernel-dev-f98d007d332b819b7777bf280a07fc3d2dfe2f7a.zip
op-kernel-dev-f98d007d332b819b7777bf280a07fc3d2dfe2f7a.tar.gz
clk: mvebu: add missing iounmap
Add missing iounmap to setup error path. Signed-off-by: Jisheng Zhang <jszhang@marvell.com> Signed-off-by: Mike Turquette <mturquette@linaro.org>
Diffstat (limited to 'drivers/clk/mvebu/common.c')
-rw-r--r--drivers/clk/mvebu/common.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/clk/mvebu/common.c b/drivers/clk/mvebu/common.c
index adaa4a1..25ceccf 100644
--- a/drivers/clk/mvebu/common.c
+++ b/drivers/clk/mvebu/common.c
@@ -45,8 +45,10 @@ void __init mvebu_coreclk_setup(struct device_node *np,
clk_data.clk_num = 2 + desc->num_ratios;
clk_data.clks = kzalloc(clk_data.clk_num * sizeof(struct clk *),
GFP_KERNEL);
- if (WARN_ON(!clk_data.clks))
+ if (WARN_ON(!clk_data.clks)) {
+ iounmap(base);
return;
+ }
/* Register TCLK */
of_property_read_string_index(np, "clock-output-names", 0,
@@ -134,7 +136,7 @@ void __init mvebu_clk_gating_setup(struct device_node *np,
ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
if (WARN_ON(!ctrl))
- return;
+ goto ctrl_out;
spin_lock_init(&ctrl->lock);
@@ -145,10 +147,8 @@ void __init mvebu_clk_gating_setup(struct device_node *np,
ctrl->num_gates = n;
ctrl->gates = kzalloc(ctrl->num_gates * sizeof(struct clk *),
GFP_KERNEL);
- if (WARN_ON(!ctrl->gates)) {
- kfree(ctrl);
- return;
- }
+ if (WARN_ON(!ctrl->gates))
+ goto gates_out;
for (n = 0; n < ctrl->num_gates; n++) {
const char *parent =
@@ -160,4 +160,10 @@ void __init mvebu_clk_gating_setup(struct device_node *np,
}
of_clk_add_provider(np, clk_gating_get_src, ctrl);
+
+ return;
+gates_out:
+ kfree(ctrl);
+ctrl_out:
+ iounmap(base);
}
OpenPOWER on IntegriCloud