hwmon: (asb100) Convert to use devm_ functions
authorGuenter Roeck <linux@roeck-us.net>
Sat, 2 Jun 2012 16:58:02 +0000 (09:58 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Mon, 24 Sep 2012 04:08:30 +0000 (21:08 -0700)
Convert to use devm_ functions to reduce code size and simplify the code.

Cc: Mark M. Hoffman <mhoffman@lightlink.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/asb100.c

index 4b8814d..a227be4 100644 (file)
@@ -787,12 +787,10 @@ static int asb100_probe(struct i2c_client *client,
        int err;
        struct asb100_data *data;
 
-       data = kzalloc(sizeof(struct asb100_data), GFP_KERNEL);
-       if (!data) {
-               pr_debug("probe failed, kzalloc failed!\n");
-               err = -ENOMEM;
-               goto ERROR0;
-       }
+       data = devm_kzalloc(&client->dev, sizeof(struct asb100_data),
+                           GFP_KERNEL);
+       if (!data)
+               return -ENOMEM;
 
        i2c_set_clientdata(client, data);
        mutex_init(&data->lock);
@@ -801,7 +799,7 @@ static int asb100_probe(struct i2c_client *client,
        /* Attach secondary lm75 clients */
        err = asb100_detect_subclients(client);
        if (err)
-               goto ERROR1;
+               return err;
 
        /* Initialize the chip */
        asb100_init_client(client);
@@ -829,9 +827,6 @@ ERROR4:
 ERROR3:
        i2c_unregister_device(data->lm75[1]);
        i2c_unregister_device(data->lm75[0]);
-ERROR1:
-       kfree(data);
-ERROR0:
        return err;
 }
 
@@ -845,8 +840,6 @@ static int asb100_remove(struct i2c_client *client)
        i2c_unregister_device(data->lm75[1]);
        i2c_unregister_device(data->lm75[0]);
 
-       kfree(data);
-
        return 0;
 }