ethtool: Allocate register dump buffer with vmalloc()

Some NICs have huge register files which exceed the maximum heap
allocation size.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Ben Hutchings 2010-09-20 08:42:17 +00:00 committed by David S. Miller
parent 6099e3dea9
commit a77f5db361

View File

@ -815,7 +815,7 @@ static int ethtool_get_regs(struct net_device *dev, char __user *useraddr)
if (regs.len > reglen) if (regs.len > reglen)
regs.len = reglen; regs.len = reglen;
regbuf = kmalloc(reglen, GFP_USER); regbuf = vmalloc(reglen);
if (!regbuf) if (!regbuf)
return -ENOMEM; return -ENOMEM;
@ -830,7 +830,7 @@ static int ethtool_get_regs(struct net_device *dev, char __user *useraddr)
ret = 0; ret = 0;
out: out:
kfree(regbuf); vfree(regbuf);
return ret; return ret;
} }