Commit 46965688 authored by Dan Carpenter's avatar Dan Carpenter Committed by Stephen Boyd

clk: meson: add some error handling in meson_clk_register_cpu()

This error handling hopefully isn't needed but it make the static
checkers happy.
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Acked-by: default avatarCarlo Caione <carlo@endlessm.com>
Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
parent 22109785
...@@ -213,22 +213,30 @@ struct clk *meson_clk_register_cpu(const struct clk_conf *clk_conf, ...@@ -213,22 +213,30 @@ struct clk *meson_clk_register_cpu(const struct clk_conf *clk_conf,
if (!pclk) { if (!pclk) {
pr_err("%s: could not lookup parent clock %s\n", pr_err("%s: could not lookup parent clock %s\n",
__func__, clk_conf->clks_parent[0]); __func__, clk_conf->clks_parent[0]);
return ERR_PTR(-EINVAL); ret = -EINVAL;
goto free_clk;
} }
ret = clk_notifier_register(pclk, &clk_cpu->clk_nb); ret = clk_notifier_register(pclk, &clk_cpu->clk_nb);
if (ret) { if (ret) {
pr_err("%s: failed to register clock notifier for %s\n", pr_err("%s: failed to register clock notifier for %s\n",
__func__, clk_conf->clk_name); __func__, clk_conf->clk_name);
return ERR_PTR(-EINVAL); goto free_clk;
} }
clk = clk_register(NULL, &clk_cpu->hw); clk = clk_register(NULL, &clk_cpu->hw);
if (IS_ERR(clk)) { if (IS_ERR(clk)) {
clk_notifier_unregister(pclk, &clk_cpu->clk_nb); ret = PTR_ERR(clk);
kfree(clk_cpu); goto unregister_clk_nb;
} }
return clk; return clk;
unregister_clk_nb:
clk_notifier_unregister(pclk, &clk_cpu->clk_nb);
free_clk:
kfree(clk_cpu);
return ERR_PTR(ret);
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment