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: Himangi Saraogi <himangi774@gmail.com> Acked-by: Julia Lawall <julia.lawall@lip6.fr> Reviewed-by: Jean Delvare <jdelvare@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
cfda2794b5
commit
1698da2461
|
@ -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,
|
||||||
{
|
{
|
||||||
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,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue