diff options
author | Geliang Tang <geliangtang@gmail.com> | 2017-05-06 11:42:16 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-05-08 15:02:09 -0400 |
commit | 294316a4af16cd5c355a80bd2dc7ea803b88f6ba (patch) | |
tree | ecc7fbc95caf37fe837d535615d97494353cdeb7 /drivers/net/hippi | |
parent | 3bb4858fda1cac2ae677edb5134932af4c7f8ff8 (diff) |
net/hippi/rrunner: use memdup_user
Use memdup_user() helper instead of open-coding to simplify the code.
Signed-off-by: Geliang Tang <geliangtang@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/hippi')
-rw-r--r-- | drivers/net/hippi/rrunner.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/net/hippi/rrunner.c b/drivers/net/hippi/rrunner.c index dd7fc6659ad4..365c4d987a01 100644 --- a/drivers/net/hippi/rrunner.c +++ b/drivers/net/hippi/rrunner.c | |||
@@ -1615,17 +1615,14 @@ static int rr_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
1615 | return -EPERM; | 1615 | return -EPERM; |
1616 | } | 1616 | } |
1617 | 1617 | ||
1618 | image = kmalloc(EEPROM_WORDS * sizeof(u32), GFP_KERNEL); | 1618 | image = memdup_user(rq->ifr_data, EEPROM_BYTES); |
1619 | oldimage = kmalloc(EEPROM_WORDS * sizeof(u32), GFP_KERNEL); | 1619 | if (IS_ERR(image)) |
1620 | if (!image || !oldimage) { | 1620 | return PTR_ERR(image); |
1621 | error = -ENOMEM; | ||
1622 | goto wf_out; | ||
1623 | } | ||
1624 | 1621 | ||
1625 | error = copy_from_user(image, rq->ifr_data, EEPROM_BYTES); | 1622 | oldimage = kmalloc(EEPROM_BYTES, GFP_KERNEL); |
1626 | if (error) { | 1623 | if (!oldimage) { |
1627 | error = -EFAULT; | 1624 | kfree(image); |
1628 | goto wf_out; | 1625 | return -ENOMEM; |
1629 | } | 1626 | } |
1630 | 1627 | ||
1631 | if (rrpriv->fw_running){ | 1628 | if (rrpriv->fw_running){ |