Re: [PATCH] net/hippi/rrunner: use memdup_user

2017-05-08 Thread David Miller
From: Geliang Tang 
Date: Sat,  6 May 2017 23:42:16 +0800

> Use memdup_user() helper instead of open-coding to simplify the code.
> 
> Signed-off-by: Geliang Tang 

Applied.


[PATCH] net/hippi/rrunner: use memdup_user

2017-05-06 Thread Geliang Tang
Use memdup_user() helper instead of open-coding to simplify the code.

Signed-off-by: Geliang Tang 
---
 drivers/net/hippi/rrunner.c | 17 +++--
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/drivers/net/hippi/rrunner.c b/drivers/net/hippi/rrunner.c
index 9b0d614..1ce6239 100644
--- a/drivers/net/hippi/rrunner.c
+++ b/drivers/net/hippi/rrunner.c
@@ -1616,17 +1616,14 @@ static int rr_ioctl(struct net_device *dev, struct 
ifreq *rq, int cmd)
return -EPERM;
}
 
-   image = kmalloc(EEPROM_WORDS * sizeof(u32), GFP_KERNEL);
-   oldimage = kmalloc(EEPROM_WORDS * sizeof(u32), GFP_KERNEL);
-   if (!image || !oldimage) {
-   error = -ENOMEM;
-   goto wf_out;
-   }
+   image = memdup_user(rq->ifr_data, EEPROM_BYTES);
+   if (IS_ERR(image))
+   return PTR_ERR(image);
 
-   error = copy_from_user(image, rq->ifr_data, EEPROM_BYTES);
-   if (error) {
-   error = -EFAULT;
-   goto wf_out;
+   oldimage = kmalloc(EEPROM_BYTES, GFP_KERNEL);
+   if (!oldimage) {
+   kfree(image);
+   return -ENOMEM;
}
 
if (rrpriv->fw_running){
-- 
2.9.3