Skip to content

Commit

Permalink
net/ethtool/ioctl: remove if n_stats checks from ethtool_get_phy_stats
Browse files Browse the repository at this point in the history
Now that we always early return if we don't have any stats we can remove
these checks as they're no longer necessary.

Signed-off-by: Daniil Tatianin <d-tatianin@yandex-team.ru>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Daniil Tatianin authored and David S. Miller committed Dec 28, 2022
1 parent 9deb1e9 commit fd47785
Showing 1 changed file with 10 additions and 14 deletions.
24 changes: 10 additions & 14 deletions net/ethtool/ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -2107,28 +2107,24 @@ static int ethtool_get_phy_stats(struct net_device *dev, void __user *useraddr)

stats.n_stats = n_stats;

if (n_stats) {
data = vzalloc(array_size(n_stats, sizeof(u64)));
if (!data)
return -ENOMEM;
data = vzalloc(array_size(n_stats, sizeof(u64)));
if (!data)
return -ENOMEM;

if (phydev && !ops->get_ethtool_phy_stats &&
phy_ops && phy_ops->get_stats) {
ret = phy_ops->get_stats(phydev, &stats, data);
if (ret < 0)
goto out;
} else {
ops->get_ethtool_phy_stats(dev, &stats, data);
}
if (phydev && !ops->get_ethtool_phy_stats &&
phy_ops && phy_ops->get_stats) {
ret = phy_ops->get_stats(phydev, &stats, data);
if (ret < 0)
goto out;
} else {
data = NULL;
ops->get_ethtool_phy_stats(dev, &stats, data);
}

ret = -EFAULT;
if (copy_to_user(useraddr, &stats, sizeof(stats)))
goto out;
useraddr += sizeof(stats);
if (n_stats && copy_to_user(useraddr, data, array_size(n_stats, sizeof(u64))))
if (copy_to_user(useraddr, data, array_size(n_stats, sizeof(u64))))
goto out;
ret = 0;

Expand Down

0 comments on commit fd47785

Please sign in to comment.