diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2010-09-20 04:42:17 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-09-21 17:57:59 -0400 |
commit | a77f5db361ed9953b5b749353ea2c7fed2bf8d93 (patch) | |
tree | 31f9106359dd0585dc66af0f01d185d758a0dd56 /net/core/ethtool.c | |
parent | 6099e3dea9aaa6127cea0610533221c9e956f009 (diff) |
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>
Diffstat (limited to 'net/core/ethtool.c')
-rw-r--r-- | net/core/ethtool.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/ethtool.c b/net/core/ethtool.c index 91ffce20c36b..dae2fd053c2b 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c | |||
@@ -815,7 +815,7 @@ static int ethtool_get_regs(struct net_device *dev, char __user *useraddr) | |||
815 | if (regs.len > reglen) | 815 | if (regs.len > reglen) |
816 | regs.len = reglen; | 816 | regs.len = reglen; |
817 | 817 | ||
818 | regbuf = kmalloc(reglen, GFP_USER); | 818 | regbuf = vmalloc(reglen); |
819 | if (!regbuf) | 819 | if (!regbuf) |
820 | return -ENOMEM; | 820 | return -ENOMEM; |
821 | 821 | ||
@@ -830,7 +830,7 @@ static int ethtool_get_regs(struct net_device *dev, char __user *useraddr) | |||
830 | ret = 0; | 830 | ret = 0; |
831 | 831 | ||
832 | out: | 832 | out: |
833 | kfree(regbuf); | 833 | vfree(regbuf); |
834 | return ret; | 834 | return ret; |
835 | } | 835 | } |
836 | 836 | ||