Input: elants_i2c - make use of devm_add_action_or_reset()
authorCai Huoqing <caihuoqing@baidu.com>
Thu, 23 Sep 2021 04:39:42 +0000 (21:39 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 23 Sep 2021 04:56:47 +0000 (21:56 -0700)
The helper function devm_add_action_or_reset() will internally
call devm_add_action(), and if devm_add_action() fails then it will
execute the action mentioned and return the error code. So
use devm_add_action_or_reset() instead of devm_add_action()
to simplify the error handling, reduce the code.

Signed-off-by: Cai Huoqing <caihuoqing@baidu.com>
Link: https://lore.kernel.org/r/20210922125212.95-2-caihuoqing@baidu.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/elants_i2c.c

index 17540bd..98ba5ca 100644 (file)
@@ -1440,11 +1440,11 @@ static int elants_i2c_probe(struct i2c_client *client,
        if (error)
                return error;
 
-       error = devm_add_action(&client->dev, elants_i2c_power_off, ts);
+       error = devm_add_action_or_reset(&client->dev,
+                                        elants_i2c_power_off, ts);
        if (error) {
                dev_err(&client->dev,
                        "failed to install power off action: %d\n", error);
-               elants_i2c_power_off(ts);
                return error;
        }