diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2015-06-11 18:20:46 +0300 |
---|---|---|
committer | Stephen Boyd <sboyd@codeaurora.org> | 2015-06-12 14:30:19 -0700 |
commit | 46965688acd0f9599a3c3ecce82109b3b24153a9 (patch) | |
tree | c0addbb02a037605f8ed5e7b392d0adc45cb7e7d /drivers/clk/meson | |
parent | 22109785163310666cf9913bafbcc11c5aebe68a (diff) | |
download | linux-46965688acd0f9599a3c3ecce82109b3b24153a9.tar.gz linux-46965688acd0f9599a3c3ecce82109b3b24153a9.tar.bz2 linux-46965688acd0f9599a3c3ecce82109b3b24153a9.zip |
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: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Diffstat (limited to 'drivers/clk/meson')
-rw-r--r-- | drivers/clk/meson/clk-cpu.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/clk/meson/clk-cpu.c b/drivers/clk/meson/clk-cpu.c index 148e99fc5970..71ad493b94df 100644 --- a/drivers/clk/meson/clk-cpu.c +++ b/drivers/clk/meson/clk-cpu.c @@ -213,22 +213,30 @@ struct clk *meson_clk_register_cpu(const struct clk_conf *clk_conf, if (!pclk) { pr_err("%s: could not lookup parent clock %s\n", __func__, clk_conf->clks_parent[0]); - return ERR_PTR(-EINVAL); + ret = -EINVAL; + goto free_clk; } ret = clk_notifier_register(pclk, &clk_cpu->clk_nb); if (ret) { pr_err("%s: failed to register clock notifier for %s\n", __func__, clk_conf->clk_name); - return ERR_PTR(-EINVAL); + goto free_clk; } clk = clk_register(NULL, &clk_cpu->hw); if (IS_ERR(clk)) { - clk_notifier_unregister(pclk, &clk_cpu->clk_nb); - kfree(clk_cpu); + ret = PTR_ERR(clk); + goto unregister_clk_nb; } return clk; + +unregister_clk_nb: + clk_notifier_unregister(pclk, &clk_cpu->clk_nb); +free_clk: + kfree(clk_cpu); + + return ERR_PTR(ret); } |