summaryrefslogtreecommitdiff
path: root/drivers/clk
diff options
context:
space:
mode:
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>2015-12-23 17:57:20 +0530
committerKyle Yan <kyan@codeaurora.org>2016-06-07 11:57:08 -0700
commitd0a5f89165c59c8aaaa2cc8e21d55d2d0be8afaa (patch)
treee6e3c609eb76ce7623f1fd6de9b14e2e8ac300cc /drivers/clk
parent55b262dfa39814a17738416e21580ecd20163c97 (diff)
clk: qcom: common: check for failure
We were not checking the return from devm_add_action() which can fail. Start using the helper and devm_add_action_or_reset() and return directly as we know that the cleanup has been done by this helper. Change-Id: Ie0bb9fed36484bc65b09905bda6b248a17ae2964 (cherry picked from commit 66f5ce2538e06dd6d628e37bbd38c79631274c9f) Git-commit: 66f5ce2538e06dd6d628e37bbd38c79631274c9f Git-repo: https://git.linaro.org/landing-teams/working/qualcomm/kernel.git Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Taniya Das <tdas@codeaurora.org>
Diffstat (limited to 'drivers/clk')
-rw-r--r--drivers/clk/qcom/common.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/clk/qcom/common.c b/drivers/clk/qcom/common.c
index c112ebaba70d..65809f1a1f2b 100644
--- a/drivers/clk/qcom/common.c
+++ b/drivers/clk/qcom/common.c
@@ -213,7 +213,11 @@ int qcom_cc_really_probe(struct platform_device *pdev,
if (ret)
return ret;
- devm_add_action(dev, qcom_cc_del_clk_provider, pdev->dev.of_node);
+ ret = devm_add_action_or_reset(dev, qcom_cc_del_clk_provider,
+ pdev->dev.of_node);
+
+ if (ret)
+ return ret;
reset = &cc->reset;
reset->rcdev.of_node = dev->of_node;
@@ -227,7 +231,11 @@ int qcom_cc_really_probe(struct platform_device *pdev,
if (ret)
return ret;
- devm_add_action(dev, qcom_cc_reset_unregister, &reset->rcdev);
+ ret = devm_add_action_or_reset(dev, qcom_cc_reset_unregister,
+ &reset->rcdev);
+
+ if (ret)
+ return ret;
if (desc->gdscs && desc->num_gdscs) {
ret = gdsc_register(dev, desc->gdscs, desc->num_gdscs,
@@ -236,10 +244,7 @@ int qcom_cc_really_probe(struct platform_device *pdev,
return ret;
}
- devm_add_action(dev, qcom_cc_gdsc_unregister, dev);
-
-
- return 0;
+ return devm_add_action_or_reset(dev, qcom_cc_gdsc_unregister, dev);
}
EXPORT_SYMBOL_GPL(qcom_cc_really_probe);