diff options
author | Guenter Roeck <linux@roeck-us.net> | 2016-07-25 17:53:23 -0400 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2016-07-31 18:02:51 -0400 |
commit | c5fcf01bcfceb245da575cc5bfa4391642649f2d (patch) | |
tree | 063486384b5e7a77d4b6db06fa9f8e05f85ae85e /drivers/hwmon/lm90.c | |
parent | be9d6374a76ffbeda783a5bdcb00e219c7bda2d0 (diff) |
hwmon: (lm90) Improve error handling
Replace devm_add_action() with devm_add_action_or_reset(),
and check its return value.
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'drivers/hwmon/lm90.c')
-rw-r--r-- | drivers/hwmon/lm90.c | 12 |
1 files 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) | |||
1551 | if (config != data->config_orig) /* Only write if changed */ | 1551 | if (config != data->config_orig) /* Only write if changed */ |
1552 | i2c_smbus_write_byte_data(client, LM90_REG_W_CONFIG1, config); | 1552 | i2c_smbus_write_byte_data(client, LM90_REG_W_CONFIG1, config); |
1553 | 1553 | ||
1554 | devm_add_action(&client->dev, lm90_restore_conf, data); | 1554 | return devm_add_action_or_reset(&client->dev, lm90_restore_conf, data); |
1555 | |||
1556 | return 0; | ||
1557 | } | 1555 | } |
1558 | 1556 | ||
1559 | static bool lm90_is_tripped(struct i2c_client *client, u16 *status) | 1557 | static bool lm90_is_tripped(struct i2c_client *client, u16 *status) |
@@ -1640,7 +1638,9 @@ static int lm90_probe(struct i2c_client *client, | |||
1640 | return err; | 1638 | return err; |
1641 | } | 1639 | } |
1642 | 1640 | ||
1643 | devm_add_action(dev, lm90_regulator_disable, regulator); | 1641 | err = devm_add_action_or_reset(dev, lm90_regulator_disable, regulator); |
1642 | if (err) | ||
1643 | return err; | ||
1644 | 1644 | ||
1645 | data = devm_kzalloc(dev, sizeof(struct lm90_data), GFP_KERNEL); | 1645 | data = devm_kzalloc(dev, sizeof(struct lm90_data), GFP_KERNEL); |
1646 | if (!data) | 1646 | if (!data) |
@@ -1696,7 +1696,9 @@ static int lm90_probe(struct i2c_client *client, | |||
1696 | err = device_create_file(dev, &dev_attr_pec); | 1696 | err = device_create_file(dev, &dev_attr_pec); |
1697 | if (err) | 1697 | if (err) |
1698 | return err; | 1698 | return err; |
1699 | devm_add_action(dev, lm90_remove_pec, dev); | 1699 | err = devm_add_action_or_reset(dev, lm90_remove_pec, dev); |
1700 | if (err) | ||
1701 | return err; | ||
1700 | } | 1702 | } |
1701 | 1703 | ||
1702 | hwmon_dev = devm_hwmon_device_register_with_groups(dev, client->name, | 1704 | hwmon_dev = devm_hwmon_device_register_with_groups(dev, client->name, |