diff options
Diffstat (limited to 'net/core/ethtool.c')
-rw-r--r-- | net/core/ethtool.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/net/core/ethtool.c b/net/core/ethtool.c index e23766c7e3ba..d92de0a1f0a4 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c | |||
@@ -1405,9 +1405,12 @@ static int ethtool_get_regs(struct net_device *dev, char __user *useraddr) | |||
1405 | if (regs.len > reglen) | 1405 | if (regs.len > reglen) |
1406 | regs.len = reglen; | 1406 | regs.len = reglen; |
1407 | 1407 | ||
1408 | regbuf = vzalloc(reglen); | 1408 | regbuf = NULL; |
1409 | if (reglen && !regbuf) | 1409 | if (reglen) { |
1410 | return -ENOMEM; | 1410 | regbuf = vzalloc(reglen); |
1411 | if (!regbuf) | ||
1412 | return -ENOMEM; | ||
1413 | } | ||
1411 | 1414 | ||
1412 | ops->get_regs(dev, ®s, regbuf); | 1415 | ops->get_regs(dev, ®s, regbuf); |
1413 | 1416 | ||
@@ -1712,7 +1715,7 @@ static noinline_for_stack int ethtool_get_channels(struct net_device *dev, | |||
1712 | static noinline_for_stack int ethtool_set_channels(struct net_device *dev, | 1715 | static noinline_for_stack int ethtool_set_channels(struct net_device *dev, |
1713 | void __user *useraddr) | 1716 | void __user *useraddr) |
1714 | { | 1717 | { |
1715 | struct ethtool_channels channels, max; | 1718 | struct ethtool_channels channels, max = { .cmd = ETHTOOL_GCHANNELS }; |
1716 | u32 max_rx_in_use = 0; | 1719 | u32 max_rx_in_use = 0; |
1717 | 1720 | ||
1718 | if (!dev->ethtool_ops->set_channels || !dev->ethtool_ops->get_channels) | 1721 | if (!dev->ethtool_ops->set_channels || !dev->ethtool_ops->get_channels) |