summaryrefslogtreecommitdiffstats
path: root/drivers/clk/qcom
diff options
context:
space:
mode:
authorSudip Mukherjee2015-12-23 13:27:20 +0100
committerStephen Boyd2016-02-09 02:06:43 +0100
commit66f5ce2538e06dd6d628e37bbd38c79631274c9f (patch)
tree88a23286f66a0414bc35dc179fb33c38096271f6 /drivers/clk/qcom
parentdevm: add helper devm_add_action_or_reset() (diff)
downloadkernel-qcow2-linux-66f5ce2538e06dd6d628e37bbd38c79631274c9f.tar.gz
kernel-qcow2-linux-66f5ce2538e06dd6d628e37bbd38c79631274c9f.tar.xz
kernel-qcow2-linux-66f5ce2538e06dd6d628e37bbd38c79631274c9f.zip
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. Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Diffstat (limited to 'drivers/clk/qcom')
-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);