aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>2015-12-23 07:27:20 -0500
committerStephen Boyd <sboyd@codeaurora.org>2016-02-08 20:06:43 -0500
commit66f5ce2538e06dd6d628e37bbd38c79631274c9f (patch)
tree88a23286f66a0414bc35dc179fb33c38096271f6
parenta3499e9bf0feeea593a9daae855986c685561893 (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. Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
-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,
213 if (ret) 213 if (ret)
214 return ret; 214 return ret;
215 215
216 devm_add_action(dev, qcom_cc_del_clk_provider, pdev->dev.of_node); 216 ret = devm_add_action_or_reset(dev, qcom_cc_del_clk_provider,
217 pdev->dev.of_node);
218
219 if (ret)
220 return ret;
217 221
218 reset = &cc->reset; 222 reset = &cc->reset;
219 reset->rcdev.of_node = dev->of_node; 223 reset->rcdev.of_node = dev->of_node;
@@ -227,7 +231,11 @@ int qcom_cc_really_probe(struct platform_device *pdev,
227 if (ret) 231 if (ret)
228 return ret; 232 return ret;
229 233
230 devm_add_action(dev, qcom_cc_reset_unregister, &reset->rcdev); 234 ret = devm_add_action_or_reset(dev, qcom_cc_reset_unregister,
235 &reset->rcdev);
236
237 if (ret)
238 return ret;
231 239
232 if (desc->gdscs && desc->num_gdscs) { 240 if (desc->gdscs && desc->num_gdscs) {
233 ret = gdsc_register(dev, desc->gdscs, desc->num_gdscs, 241 ret = gdsc_register(dev, desc->gdscs, desc->num_gdscs,
@@ -236,10 +244,7 @@ int qcom_cc_really_probe(struct platform_device *pdev,
236 return ret; 244 return ret;
237 } 245 }
238 246
239 devm_add_action(dev, qcom_cc_gdsc_unregister, dev); 247 return devm_add_action_or_reset(dev, qcom_cc_gdsc_unregister, dev);
240
241
242 return 0;
243} 248}
244EXPORT_SYMBOL_GPL(qcom_cc_really_probe); 249EXPORT_SYMBOL_GPL(qcom_cc_really_probe);
245 250