Commit c5fcf01b authored by Guenter Roeck's avatar Guenter Roeck

hwmon: (lm90) Improve error handling

Replace devm_add_action() with devm_add_action_or_reset(),
and check its return value.
Reviewed-by: default avatarJean Delvare <jdelvare@suse.de>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent be9d6374
...@@ -1551,9 +1551,7 @@ static int lm90_init_client(struct i2c_client *client, struct lm90_data *data) ...@@ -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 */ if (config != data->config_orig) /* Only write if changed */
i2c_smbus_write_byte_data(client, LM90_REG_W_CONFIG1, config); i2c_smbus_write_byte_data(client, LM90_REG_W_CONFIG1, config);
devm_add_action(&client->dev, lm90_restore_conf, data); return devm_add_action_or_reset(&client->dev, lm90_restore_conf, data);
return 0;
} }
static bool lm90_is_tripped(struct i2c_client *client, u16 *status) static bool lm90_is_tripped(struct i2c_client *client, u16 *status)
...@@ -1640,7 +1638,9 @@ static int lm90_probe(struct i2c_client *client, ...@@ -1640,7 +1638,9 @@ static int lm90_probe(struct i2c_client *client,
return err; 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); data = devm_kzalloc(dev, sizeof(struct lm90_data), GFP_KERNEL);
if (!data) if (!data)
...@@ -1696,7 +1696,9 @@ static int lm90_probe(struct i2c_client *client, ...@@ -1696,7 +1696,9 @@ static int lm90_probe(struct i2c_client *client,
err = device_create_file(dev, &dev_attr_pec); err = device_create_file(dev, &dev_attr_pec);
if (err) if (err)
return 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, hwmon_dev = devm_hwmon_device_register_with_groups(dev, client->name,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment