Use devm_add_action_or_reset to remove the call to
tsl2772_disable_regulators_action to simplify the error path.

Signed-off-by: Chuhong Yuan <hsleste...@gmail.com>
---
Changes in v4:
  - Split v3 into three patches.
  - Revise description to make it more precise.

 drivers/iio/light/tsl2772.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/iio/light/tsl2772.c b/drivers/iio/light/tsl2772.c
index 83cece921843..29cfd8ae2700 100644
--- a/drivers/iio/light/tsl2772.c
+++ b/drivers/iio/light/tsl2772.c
@@ -1807,10 +1807,10 @@ static int tsl2772_probe(struct i2c_client *clientp,
                return PTR_ERR(chip->vdd_supply);
        }
 
-       ret = devm_add_action(&clientp->dev, tsl2772_disable_regulators_action,
-                             chip);
+       ret = devm_add_action_or_reset(&clientp->dev,
+                                       tsl2772_disable_regulators_action,
+                                       chip);
        if (ret < 0) {
-               tsl2772_disable_regulators_action(chip);
                dev_err(&clientp->dev, "Failed to setup regulator cleanup 
action %d\n",
                        ret);
                return ret;
-- 
2.20.1

Reply via email to