2019-07-08 17:10:25

by Fuqian Huang

[permalink] [raw]
Subject: [PATCH 12/14] phy: qcom-qmp: Replace devm_add_action() followed by failure action with devm_add_action_or_reset()

devm_add_action_or_reset() is introduced as a helper function which
internally calls devm_add_action(). If devm_add_action() fails
then it will execute the action mentioned and return the error code.
This reduce source code size (avoid writing the action twice)
and reduce the likelyhood of bugs.

Signed-off-by: Fuqian Huang <[email protected]>
---
drivers/phy/qualcomm/phy-qcom-qmp.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/phy/qualcomm/phy-qcom-qmp.c b/drivers/phy/qualcomm/phy-qcom-qmp.c
index cd91b4179b10..677916f8968c 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp.c
@@ -1837,9 +1837,7 @@ static int phy_pipe_clk_register(struct qcom_qmp *qmp, struct device_node *np)
* Roll a devm action because the clock provider is the child node, but
* the child node is not actually a device.
*/
- ret = devm_add_action(qmp->dev, phy_pipe_clk_release_provider, np);
- if (ret)
- phy_pipe_clk_release_provider(np);
+ ret = devm_add_action_or_reset(qmp->dev, phy_pipe_clk_release_provider, np);

return ret;
}
--
2.11.0


2019-07-08 22:43:12

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH 12/14] phy: qcom-qmp: Replace devm_add_action() followed by failure action with devm_add_action_or_reset()

On Mon 08 Jul 05:34 PDT 2019, Fuqian Huang wrote:

> devm_add_action_or_reset() is introduced as a helper function which
> internally calls devm_add_action(). If devm_add_action() fails
> then it will execute the action mentioned and return the error code.
> This reduce source code size (avoid writing the action twice)
> and reduce the likelyhood of bugs.
>
> Signed-off-by: Fuqian Huang <[email protected]>

Reviewed-by: Bjorn Andersson <[email protected]>

> ---
> drivers/phy/qualcomm/phy-qcom-qmp.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp.c b/drivers/phy/qualcomm/phy-qcom-qmp.c
> index cd91b4179b10..677916f8968c 100644
> --- a/drivers/phy/qualcomm/phy-qcom-qmp.c
> +++ b/drivers/phy/qualcomm/phy-qcom-qmp.c
> @@ -1837,9 +1837,7 @@ static int phy_pipe_clk_register(struct qcom_qmp *qmp, struct device_node *np)
> * Roll a devm action because the clock provider is the child node, but
> * the child node is not actually a device.
> */
> - ret = devm_add_action(qmp->dev, phy_pipe_clk_release_provider, np);
> - if (ret)
> - phy_pipe_clk_release_provider(np);
> + ret = devm_add_action_or_reset(qmp->dev, phy_pipe_clk_release_provider, np);
>
> return ret;
> }
> --
> 2.11.0
>