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 | |
| 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')
| -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 | ||
