diff options
Diffstat (limited to 'drivers/misc/eeprom')
| -rw-r--r-- | drivers/misc/eeprom/eeprom.c | 23 | 
1 files changed, 6 insertions, 17 deletions
| diff --git a/drivers/misc/eeprom/eeprom.c b/drivers/misc/eeprom/eeprom.c index 33f8673d23a6..b432873def96 100644 --- a/drivers/misc/eeprom/eeprom.c +++ b/drivers/misc/eeprom/eeprom.c @@ -18,7 +18,7 @@  #include <linux/kernel.h>  #include <linux/module.h> -#include <linux/slab.h> +#include <linux/device.h>  #include <linux/jiffies.h>  #include <linux/i2c.h>  #include <linux/mutex.h> @@ -159,12 +159,11 @@ static int eeprom_probe(struct i2c_client *client,  {  	struct i2c_adapter *adapter = client->adapter;  	struct eeprom_data *data; -	int err; -	if (!(data = kzalloc(sizeof(struct eeprom_data), GFP_KERNEL))) { -		err = -ENOMEM; -		goto exit; -	} +	data = devm_kzalloc(&client->dev, sizeof(struct eeprom_data), +			    GFP_KERNEL); +	if (!data) +		return -ENOMEM;  	memset(data->data, 0xff, EEPROM_SIZE);  	i2c_set_clientdata(client, data); @@ -190,22 +189,12 @@ static int eeprom_probe(struct i2c_client *client,  	}  	/* create the sysfs eeprom file */ -	err = sysfs_create_bin_file(&client->dev.kobj, &eeprom_attr); -	if (err) -		goto exit_kfree; - -	return 0; - -exit_kfree: -	kfree(data); -exit: -	return err; +	return sysfs_create_bin_file(&client->dev.kobj, &eeprom_attr);  }  static int eeprom_remove(struct i2c_client *client)  {  	sysfs_remove_bin_file(&client->dev.kobj, &eeprom_attr); -	kfree(i2c_get_clientdata(client));  	return 0;  } | 
