leds: convert PCA9532 LED driver to devm_kzalloc()
authorBryan Wu <bryan.wu@canonical.com>
Wed, 4 Jul 2012 03:59:19 +0000 (11:59 +0800)
committerBryan Wu <bryan.wu@canonical.com>
Mon, 23 Jul 2012 23:52:39 +0000 (07:52 +0800)
Cc: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
drivers/leds/leds-pca9532.c

index ceccab44b5b818404da63b76f74cda552e7eb367..cee8a5b483ac50a59d16731c154639ede3bad03f 100644 (file)
@@ -449,7 +449,6 @@ static int pca9532_probe(struct i2c_client *client,
 {
        struct pca9532_data *data = i2c_get_clientdata(client);
        struct pca9532_platform_data *pca9532_pdata = client->dev.platform_data;
-       int err;
 
        if (!pca9532_pdata)
                return -EIO;
@@ -458,7 +457,7 @@ static int pca9532_probe(struct i2c_client *client,
                I2C_FUNC_SMBUS_BYTE_DATA))
                return -EIO;
 
-       data = kzalloc(sizeof(*data), GFP_KERNEL);
+       data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL);
        if (!data)
                return -ENOMEM;
 
@@ -469,11 +468,7 @@ static int pca9532_probe(struct i2c_client *client,
        data->client = client;
        mutex_init(&data->update_lock);
 
-       err = pca9532_configure(client, data, pca9532_pdata);
-       if (err)
-               kfree(data);
-
-       return err;
+       return pca9532_configure(client, data, pca9532_pdata);
 }
 
 static int pca9532_remove(struct i2c_client *client)
@@ -485,7 +480,6 @@ static int pca9532_remove(struct i2c_client *client)
        if (err)
                return err;
 
-       kfree(data);
        return 0;
 }