Re: [PATCH] hwmon: (lm90) Improve error handling

2016-07-27 Thread Jean Delvare
Hi Guenter,

On Tue, 26 Jul 2016 08:19:47 -0700, Guenter Roeck wrote:
> Replace devm_add_action() with devm_add_action_or_reset(),
> and check its return value.
> 
> Signed-off-by: Guenter Roeck 
> ---
>  drivers/hwmon/lm90.c | 12 +++-
>  1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/hwmon/lm90.c b/drivers/hwmon/lm90.c
> index 7b3eedf76c62..fa15f7238a28 100644
> --- a/drivers/hwmon/lm90.c
> +++ b/drivers/hwmon/lm90.c
> @@ -1551,9 +1551,7 @@ static int lm90_init_client(struct i2c_client *client, 
> struct lm90_data *data)
>   if (config != data->config_orig) /* Only write if changed */
>   i2c_smbus_write_byte_data(client, LM90_REG_W_CONFIG1, config);
>  
> - devm_add_action(&client->dev, lm90_restore_conf, data);
> -
> - return 0;
> + return devm_add_action_or_reset(&client->dev, lm90_restore_conf, data);
>  }
>  
>  static bool lm90_is_tripped(struct i2c_client *client, u16 *status)
> @@ -1640,7 +1638,9 @@ static int lm90_probe(struct i2c_client *client,
>   return err;
>   }
>  
> - devm_add_action(dev, lm90_regulator_disable, regulator);
> + err = devm_add_action_or_reset(dev, lm90_regulator_disable, regulator);
> + if (err)
> + return err;
>  
>   data = devm_kzalloc(dev, sizeof(struct lm90_data), GFP_KERNEL);
>   if (!data)
> @@ -1696,7 +1696,9 @@ static int lm90_probe(struct i2c_client *client,
>   err = device_create_file(dev, &dev_attr_pec);
>   if (err)
>   return err;
> - devm_add_action(dev, lm90_remove_pec, dev);
> + err = devm_add_action_or_reset(dev, lm90_remove_pec, dev);
> + if (err)
> + return err;
>   }
>  
>   hwmon_dev = devm_hwmon_device_register_with_groups(dev, client->name,

I'm not yet familiar with that API but it looks like the right thing to
do.

Reviewed-by: Jean Delvare 

-- 
Jean Delvare
SUSE L3 Support
--
To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] hwmon: (lm90) Improve error handling

2016-07-26 Thread Guenter Roeck
Replace devm_add_action() with devm_add_action_or_reset(),
and check its return value.

Signed-off-by: Guenter Roeck 
---
 drivers/hwmon/lm90.c | 12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/hwmon/lm90.c b/drivers/hwmon/lm90.c
index 7b3eedf76c62..fa15f7238a28 100644
--- a/drivers/hwmon/lm90.c
+++ b/drivers/hwmon/lm90.c
@@ -1551,9 +1551,7 @@ static int lm90_init_client(struct i2c_client *client, 
struct lm90_data *data)
if (config != data->config_orig) /* Only write if changed */
i2c_smbus_write_byte_data(client, LM90_REG_W_CONFIG1, config);
 
-   devm_add_action(&client->dev, lm90_restore_conf, data);
-
-   return 0;
+   return devm_add_action_or_reset(&client->dev, lm90_restore_conf, data);
 }
 
 static bool lm90_is_tripped(struct i2c_client *client, u16 *status)
@@ -1640,7 +1638,9 @@ static int lm90_probe(struct i2c_client *client,
return err;
}
 
-   devm_add_action(dev, lm90_regulator_disable, regulator);
+   err = devm_add_action_or_reset(dev, lm90_regulator_disable, regulator);
+   if (err)
+   return err;
 
data = devm_kzalloc(dev, sizeof(struct lm90_data), GFP_KERNEL);
if (!data)
@@ -1696,7 +1696,9 @@ static int lm90_probe(struct i2c_client *client,
err = device_create_file(dev, &dev_attr_pec);
if (err)
return err;
-   devm_add_action(dev, lm90_remove_pec, dev);
+   err = devm_add_action_or_reset(dev, lm90_remove_pec, dev);
+   if (err)
+   return err;
}
 
hwmon_dev = devm_hwmon_device_register_with_groups(dev, client->name,
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html