Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f21105df authored by David Daney's avatar David Daney
Browse files

netdev: octeon_mgmt: Improve ethtool_ops.



Correctly show no link when the interface is down, and return
-EOPNOTSUPP for things that don't work.  This quiets the ethtool
program when run on down interfaces.

Signed-off-by: default avatarDavid Daney <david.daney@cavium.com>
Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3d305850
Loading
Loading
Loading
Loading
+18 −4
Original line number Diff line number Diff line
@@ -1379,7 +1379,7 @@ static int octeon_mgmt_get_settings(struct net_device *netdev,
	if (p->phydev)
		return phy_ethtool_gset(p->phydev, cmd);

	return -EINVAL;
	return -EOPNOTSUPP;
}

static int octeon_mgmt_set_settings(struct net_device *netdev,
@@ -1393,14 +1393,28 @@ static int octeon_mgmt_set_settings(struct net_device *netdev,
	if (p->phydev)
		return phy_ethtool_sset(p->phydev, cmd);

	return -EINVAL;
	return -EOPNOTSUPP;
}

static int octeon_mgmt_nway_reset(struct net_device *dev)
{
	struct octeon_mgmt *p = netdev_priv(dev);

	if (!capable(CAP_NET_ADMIN))
		return -EPERM;

	if (p->phydev)
		return phy_start_aneg(p->phydev);

	return -EOPNOTSUPP;
}

static const struct ethtool_ops octeon_mgmt_ethtool_ops = {
	.get_drvinfo = octeon_mgmt_get_drvinfo,
	.get_link = ethtool_op_get_link,
	.get_settings = octeon_mgmt_get_settings,
	.set_settings = octeon_mgmt_set_settings
	.set_settings = octeon_mgmt_set_settings,
	.nway_reset = octeon_mgmt_nway_reset,
	.get_link = ethtool_op_get_link,
};

static const struct net_device_ops octeon_mgmt_ops = {