aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/emc6w201.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/hwmon/emc6w201.c')
-rw-r--r--drivers/hwmon/emc6w201.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/hwmon/emc6w201.c b/drivers/hwmon/emc6w201.c
index 840f5112e602..ada12a98a97c 100644
--- a/drivers/hwmon/emc6w201.c
+++ b/drivers/hwmon/emc6w201.c
@@ -492,11 +492,10 @@ static int emc6w201_probe(struct i2c_client *client,
492 struct emc6w201_data *data; 492 struct emc6w201_data *data;
493 int err; 493 int err;
494 494
495 data = kzalloc(sizeof(struct emc6w201_data), GFP_KERNEL); 495 data = devm_kzalloc(&client->dev, sizeof(struct emc6w201_data),
496 if (!data) { 496 GFP_KERNEL);
497 err = -ENOMEM; 497 if (!data)
498 goto exit; 498 return -ENOMEM;
499 }
500 499
501 i2c_set_clientdata(client, data); 500 i2c_set_clientdata(client, data);
502 mutex_init(&data->update_lock); 501 mutex_init(&data->update_lock);
@@ -504,7 +503,7 @@ static int emc6w201_probe(struct i2c_client *client,
504 /* Create sysfs attribute */ 503 /* Create sysfs attribute */
505 err = sysfs_create_group(&client->dev.kobj, &emc6w201_group); 504 err = sysfs_create_group(&client->dev.kobj, &emc6w201_group);
506 if (err) 505 if (err)
507 goto exit_free; 506 return err;
508 507
509 /* Expose as a hwmon device */ 508 /* Expose as a hwmon device */
510 data->hwmon_dev = hwmon_device_register(&client->dev); 509 data->hwmon_dev = hwmon_device_register(&client->dev);
@@ -517,9 +516,6 @@ static int emc6w201_probe(struct i2c_client *client,
517 516
518 exit_remove: 517 exit_remove:
519 sysfs_remove_group(&client->dev.kobj, &emc6w201_group); 518 sysfs_remove_group(&client->dev.kobj, &emc6w201_group);
520 exit_free:
521 kfree(data);
522 exit:
523 return err; 519 return err;
524} 520}
525 521
@@ -529,7 +525,6 @@ static int emc6w201_remove(struct i2c_client *client)
529 525
530 hwmon_device_unregister(data->hwmon_dev); 526 hwmon_device_unregister(data->hwmon_dev);
531 sysfs_remove_group(&client->dev.kobj, &emc6w201_group); 527 sysfs_remove_group(&client->dev.kobj, &emc6w201_group);
532 kfree(data);
533 528
534 return 0; 529 return 0;
535} 530}