* [PATCH 1/2] devm: add helper devm_add_action_or_reset()
@ 2015-12-23 12:27 Sudip Mukherjee
2015-12-23 12:27 ` [PATCH v2 2/2] clk: qcom: common: check for failure Sudip Mukherjee
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Sudip Mukherjee @ 2015-12-23 12:27 UTC (permalink / raw)
To: Michael Turquette, Stephen Boyd
Cc: linux-kernel, Greg Kroah-Hartman, linux-clk, Sudip Mukherjee
Add a helper function devm_add_action_or_reset() which will internally
call devm_add_action(). But if devm_add_action() fails then it will
execute the action mentioned and return the error code.
Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
---
Next patch of the series will use this helper. And from a first glance
more use of this helper will be there.
include/linux/device.h | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/include/linux/device.h b/include/linux/device.h
index f627ba2..f2455d0 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -682,6 +682,18 @@ void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res);
int devm_add_action(struct device *dev, void (*action)(void *), void *data);
void devm_remove_action(struct device *dev, void (*action)(void *), void *data);
+static inline int devm_add_action_or_reset(struct device *dev,
+ void (*action)(void *), void *data)
+{
+ int ret;
+
+ ret = devm_add_action(dev, action, data);
+ if (ret)
+ action(data);
+
+ return ret;
+}
+
struct device_dma_parameters {
/*
* a low level driver may set these to teach IOMMU code about
--
1.9.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v2 2/2] clk: qcom: common: check for failure 2015-12-23 12:27 [PATCH 1/2] devm: add helper devm_add_action_or_reset() Sudip Mukherjee @ 2015-12-23 12:27 ` Sudip Mukherjee 2016-02-09 1:07 ` Stephen Boyd 2016-02-08 22:35 ` [PATCH 1/2] devm: add helper devm_add_action_or_reset() Stephen Boyd 2016-02-09 1:07 ` Stephen Boyd 2 siblings, 1 reply; 8+ messages in thread From: Sudip Mukherjee @ 2015-12-23 12:27 UTC (permalink / raw) To: Michael Turquette, Stephen Boyd Cc: linux-kernel, Greg Kroah-Hartman, linux-clk, Sudip Mukherjee 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> --- v2: added the helper in patch 1/2 and used that helper here. drivers/clk/qcom/common.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/clk/qcom/common.c b/drivers/clk/qcom/common.c index c112eba..65809f1 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); -- 1.9.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/2] clk: qcom: common: check for failure 2015-12-23 12:27 ` [PATCH v2 2/2] clk: qcom: common: check for failure Sudip Mukherjee @ 2016-02-09 1:07 ` Stephen Boyd 0 siblings, 0 replies; 8+ messages in thread From: Stephen Boyd @ 2016-02-09 1:07 UTC (permalink / raw) To: Sudip Mukherjee Cc: Michael Turquette, linux-kernel, Greg Kroah-Hartman, linux-clk On 12/23, Sudip Mukherjee wrote: > 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> > --- Applied to clk-next -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] devm: add helper devm_add_action_or_reset() 2015-12-23 12:27 [PATCH 1/2] devm: add helper devm_add_action_or_reset() Sudip Mukherjee 2015-12-23 12:27 ` [PATCH v2 2/2] clk: qcom: common: check for failure Sudip Mukherjee @ 2016-02-08 22:35 ` Stephen Boyd 2016-02-08 23:14 ` Greg Kroah-Hartman 2016-02-09 1:07 ` Stephen Boyd 2 siblings, 1 reply; 8+ messages in thread From: Stephen Boyd @ 2016-02-08 22:35 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Michael Turquette, linux-kernel, Sudip Mukherjee, linux-clk On 12/23, Sudip Mukherjee wrote: > Add a helper function devm_add_action_or_reset() which will internally > call devm_add_action(). But if devm_add_action() fails then it will > execute the action mentioned and return the error code. > > Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> > --- Greg, can I get your ack here to take this through clk-tree? > > Next patch of the series will use this helper. And from a first glance > more use of this helper will be there. > > include/linux/device.h | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/include/linux/device.h b/include/linux/device.h > index f627ba2..f2455d0 100644 > --- a/include/linux/device.h > +++ b/include/linux/device.h > @@ -682,6 +682,18 @@ void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res); > int devm_add_action(struct device *dev, void (*action)(void *), void *data); > void devm_remove_action(struct device *dev, void (*action)(void *), void *data); > > +static inline int devm_add_action_or_reset(struct device *dev, > + void (*action)(void *), void *data) > +{ > + int ret; > + > + ret = devm_add_action(dev, action, data); > + if (ret) > + action(data); > + > + return ret; > +} > + > struct device_dma_parameters { > /* > * a low level driver may set these to teach IOMMU code about -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] devm: add helper devm_add_action_or_reset() 2016-02-08 22:35 ` [PATCH 1/2] devm: add helper devm_add_action_or_reset() Stephen Boyd @ 2016-02-08 23:14 ` Greg Kroah-Hartman 0 siblings, 0 replies; 8+ messages in thread From: Greg Kroah-Hartman @ 2016-02-08 23:14 UTC (permalink / raw) To: Stephen Boyd; +Cc: Michael Turquette, linux-kernel, Sudip Mukherjee, linux-clk On Mon, Feb 08, 2016 at 02:35:46PM -0800, Stephen Boyd wrote: > On 12/23, Sudip Mukherjee wrote: > > Add a helper function devm_add_action_or_reset() which will internally > > call devm_add_action(). But if devm_add_action() fails then it will > > execute the action mentioned and return the error code. > > > > Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> > > --- > > Greg, can I get your ack here to take this through clk-tree? Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] devm: add helper devm_add_action_or_reset() 2015-12-23 12:27 [PATCH 1/2] devm: add helper devm_add_action_or_reset() Sudip Mukherjee 2015-12-23 12:27 ` [PATCH v2 2/2] clk: qcom: common: check for failure Sudip Mukherjee 2016-02-08 22:35 ` [PATCH 1/2] devm: add helper devm_add_action_or_reset() Stephen Boyd @ 2016-02-09 1:07 ` Stephen Boyd 2016-02-09 7:22 ` Sudip Mukherjee 2 siblings, 1 reply; 8+ messages in thread From: Stephen Boyd @ 2016-02-09 1:07 UTC (permalink / raw) To: Sudip Mukherjee Cc: Michael Turquette, linux-kernel, Greg Kroah-Hartman, linux-clk On 12/23, Sudip Mukherjee wrote: > Add a helper function devm_add_action_or_reset() which will internally > call devm_add_action(). But if devm_add_action() fails then it will > execute the action mentioned and return the error code. > > Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> > --- Applied to clk-next -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] devm: add helper devm_add_action_or_reset() 2016-02-09 1:07 ` Stephen Boyd @ 2016-02-09 7:22 ` Sudip Mukherjee 2016-02-09 18:29 ` Stephen Boyd 0 siblings, 1 reply; 8+ messages in thread From: Sudip Mukherjee @ 2016-02-09 7:22 UTC (permalink / raw) To: Stephen Boyd Cc: Michael Turquette, linux-kernel, Greg Kroah-Hartman, linux-clk On Mon, Feb 08, 2016 at 05:07:08PM -0800, Stephen Boyd wrote: > On 12/23, Sudip Mukherjee wrote: > > Add a helper function devm_add_action_or_reset() which will internally > > call devm_add_action(). But if devm_add_action() fails then it will > > execute the action mentioned and return the error code. > > > > Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> > > --- > > Applied to clk-next Thanks. Since it went through clk-tree so I guess I can use this helper for other drivers only after 4.6 merge window closes. regards sudip ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] devm: add helper devm_add_action_or_reset() 2016-02-09 7:22 ` Sudip Mukherjee @ 2016-02-09 18:29 ` Stephen Boyd 0 siblings, 0 replies; 8+ messages in thread From: Stephen Boyd @ 2016-02-09 18:29 UTC (permalink / raw) To: Sudip Mukherjee Cc: Michael Turquette, linux-kernel, Greg Kroah-Hartman, linux-clk On 02/09, Sudip Mukherjee wrote: > On Mon, Feb 08, 2016 at 05:07:08PM -0800, Stephen Boyd wrote: > > On 12/23, Sudip Mukherjee wrote: > > > Add a helper function devm_add_action_or_reset() which will internally > > > call devm_add_action(). But if devm_add_action() fails then it will > > > execute the action mentioned and return the error code. > > > > > > Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> > > > --- > > > > Applied to clk-next > > Thanks. Since it went through clk-tree so I guess I can use this helper > for other drivers only after 4.6 merge window closes. > Yep. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-02-09 18:29 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-12-23 12:27 [PATCH 1/2] devm: add helper devm_add_action_or_reset() Sudip Mukherjee 2015-12-23 12:27 ` [PATCH v2 2/2] clk: qcom: common: check for failure Sudip Mukherjee 2016-02-09 1:07 ` Stephen Boyd 2016-02-08 22:35 ` [PATCH 1/2] devm: add helper devm_add_action_or_reset() Stephen Boyd 2016-02-08 23:14 ` Greg Kroah-Hartman 2016-02-09 1:07 ` Stephen Boyd 2016-02-09 7:22 ` Sudip Mukherjee 2016-02-09 18:29 ` Stephen Boyd
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).