diff mbox series

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

Message ID 20190708123401.12173-1-huangfq.daxian@gmail.com (mailing list archive)
State Not Applicable, archived
Headers show
Series None | expand

Commit Message

Fuqian Huang July 8, 2019, 12:34 p.m. UTC
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 <huangfq.daxian@gmail.com>
---
 drivers/phy/qualcomm/phy-qcom-qmp.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Bjorn Andersson July 8, 2019, 4:19 p.m. UTC | #1
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 <huangfq.daxian@gmail.com>

Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>

> ---
>  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
>
diff mbox series

Patch

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;
 }