diff options
Diffstat (limited to 'net/core/ethtool.c')
-rw-r--r-- | net/core/ethtool.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/net/core/ethtool.c b/net/core/ethtool.c index 29edf74846fc..b6bca625b0d2 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c | |||
@@ -886,9 +886,12 @@ static int ethtool_get_regs(struct net_device *dev, char __user *useraddr) | |||
886 | if (regs.len > reglen) | 886 | if (regs.len > reglen) |
887 | regs.len = reglen; | 887 | regs.len = reglen; |
888 | 888 | ||
889 | regbuf = vzalloc(reglen); | 889 | regbuf = NULL; |
890 | if (reglen && !regbuf) | 890 | if (reglen) { |
891 | return -ENOMEM; | 891 | regbuf = vzalloc(reglen); |
892 | if (!regbuf) | ||
893 | return -ENOMEM; | ||
894 | } | ||
892 | 895 | ||
893 | ops->get_regs(dev, ®s, regbuf); | 896 | ops->get_regs(dev, ®s, regbuf); |
894 | 897 | ||