Commit 1698da24 authored by Himangi Saraogi's avatar Himangi Saraogi Committed by Greg Kroah-Hartman

EEPROM: Introduce the use of devm_kzalloc

This patch introduces the use of devm_kzalloc and does away with the
kfrees in the probe and remove functions. Also, a label and the err
variable are removed. The header device.h is included to make the devm_
function explicitly available and slab.h is done away with as it is no
longer needed.
Signed-off-by: default avatarHimangi Saraogi <himangi774@gmail.com>
Acked-by: default avatarJulia Lawall <julia.lawall@lip6.fr>
Reviewed-by: default avatarJean Delvare <jdelvare@suse.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent cfda2794
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/slab.h> #include <linux/device.h>
#include <linux/jiffies.h> #include <linux/jiffies.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/mutex.h> #include <linux/mutex.h>
...@@ -159,12 +159,11 @@ static int eeprom_probe(struct i2c_client *client, ...@@ -159,12 +159,11 @@ static int eeprom_probe(struct i2c_client *client,
{ {
struct i2c_adapter *adapter = client->adapter; struct i2c_adapter *adapter = client->adapter;
struct eeprom_data *data; struct eeprom_data *data;
int err;
if (!(data = kzalloc(sizeof(struct eeprom_data), GFP_KERNEL))) { data = devm_kzalloc(&client->dev, sizeof(struct eeprom_data),
err = -ENOMEM; GFP_KERNEL);
goto exit; if (!data)
} return -ENOMEM;
memset(data->data, 0xff, EEPROM_SIZE); memset(data->data, 0xff, EEPROM_SIZE);
i2c_set_clientdata(client, data); i2c_set_clientdata(client, data);
...@@ -190,22 +189,12 @@ static int eeprom_probe(struct i2c_client *client, ...@@ -190,22 +189,12 @@ static int eeprom_probe(struct i2c_client *client,
} }
/* create the sysfs eeprom file */ /* create the sysfs eeprom file */
err = sysfs_create_bin_file(&client->dev.kobj, &eeprom_attr); return sysfs_create_bin_file(&client->dev.kobj, &eeprom_attr);
if (err)
goto exit_kfree;
return 0;
exit_kfree:
kfree(data);
exit:
return err;
} }
static int eeprom_remove(struct i2c_client *client) static int eeprom_remove(struct i2c_client *client)
{ {
sysfs_remove_bin_file(&client->dev.kobj, &eeprom_attr); sysfs_remove_bin_file(&client->dev.kobj, &eeprom_attr);
kfree(i2c_get_clientdata(client));
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment