aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/ethtool.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/ethtool.c')
-rw-r--r--net/core/ethtool.c11
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, &regs, regbuf); 1415 ops->get_regs(dev, &regs, regbuf);
1413 1416
@@ -1712,7 +1715,7 @@ static noinline_for_stack int ethtool_get_channels(struct net_device *dev,
1712static noinline_for_stack int ethtool_set_channels(struct net_device *dev, 1715static 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)