diff --git a/drivers/hwmon/lm90.c b/drivers/hwmon/lm90.c index 22b14a68e35e..863412a02bdd 100644 --- a/drivers/hwmon/lm90.c +++ b/drivers/hwmon/lm90.c @@ -1399,11 +1399,10 @@ static int lm90_probe(struct i2c_client *client, struct lm90_data *data; int err; - data = kzalloc(sizeof(struct lm90_data), GFP_KERNEL); - if (!data) { - err = -ENOMEM; - goto exit; - } + data = devm_kzalloc(&client->dev, sizeof(struct lm90_data), GFP_KERNEL); + if (!data) + return -ENOMEM; + i2c_set_clientdata(client, data); mutex_init(&data->update_lock); @@ -1474,8 +1473,6 @@ static int lm90_probe(struct i2c_client *client, lm90_remove_files(client, data); exit_restore: lm90_restore_conf(client, data); - kfree(data); -exit: return err; } @@ -1487,7 +1484,6 @@ static int lm90_remove(struct i2c_client *client) lm90_remove_files(client, data); lm90_restore_conf(client, data); - kfree(data); return 0; }