aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2012-06-02 12:58:04 -0400
committerGuenter Roeck <linux@roeck-us.net>2012-07-22 00:48:39 -0400
commit6ecffe16911dc79b079b6fb4491fd157c62d4371 (patch)
tree56a3e4e8f821416da7ef4d208dc461c3f7de4a0b
parente20b4b38cdf1622d1577ae5e402ded2bd63bf616 (diff)
hwmon: (emc6w201) Convert to use devm_ functions
Convert to use devm_ functions to reduce code size and simplify the code. Signed-off-by: Guenter Roeck <linux@roeck-us.net> Acked-by: Jean Delvare <khali@linux-fr.org>
-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}