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.dax...@gmail.com> --- drivers/power/supply/sc27xx_fuel_gauge.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/power/supply/sc27xx_fuel_gauge.c b/drivers/power/supply/sc27xx_fuel_gauge.c index 9c184d80088b..58b2970cd359 100644 --- a/drivers/power/supply/sc27xx_fuel_gauge.c +++ b/drivers/power/supply/sc27xx_fuel_gauge.c @@ -1023,9 +1023,8 @@ static int sc27xx_fgu_probe(struct platform_device *pdev) return ret; } - ret = devm_add_action(dev, sc27xx_fgu_disable, data); + ret = devm_add_action_or_reset(dev, sc27xx_fgu_disable, data); if (ret) { - sc27xx_fgu_disable(data); dev_err(dev, "failed to add fgu disable action\n"); return ret; } -- 2.11.0