diff options
| -rw-r--r-- | drivers/base/platform.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 0f7d434ce98..ed156a13aa4 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -10,6 +10,7 @@   * information.   */ +#include <linux/string.h>  #include <linux/platform_device.h>  #include <linux/module.h>  #include <linux/init.h> @@ -213,14 +214,13 @@ EXPORT_SYMBOL_GPL(platform_device_add_resources);  int platform_device_add_data(struct platform_device *pdev, const void *data,  			     size_t size)  { -	void *d; +	void *d = kmemdup(data, size, GFP_KERNEL); -	d = kmalloc(size, GFP_KERNEL);  	if (d) { -		memcpy(d, data, size);  		pdev->dev.platform_data = d; +		return 0;  	} -	return d ? 0 : -ENOMEM; +	return -ENOMEM;  }  EXPORT_SYMBOL_GPL(platform_device_add_data);  |