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

Commit a9828ec6 authored by Ben Hutchings's avatar Ben Hutchings Committed by David S. Miller
Browse files

ethtool: Remove support for obsolete string query operations



The in-tree implementations have all been converted to
get_sset_count().

Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 15f0a394
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -495,10 +495,6 @@ struct ethtool_ops {
	u32     (*get_priv_flags)(struct net_device *);
	int     (*set_priv_flags)(struct net_device *, u32);
	int	(*get_sset_count)(struct net_device *, int);

	/* the following hooks are obsolete */
	int	(*self_test_count)(struct net_device *);/* use get_sset_count */
	int	(*get_stats_count)(struct net_device *);/* use get_sset_count */
	int	(*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, void *);
	int	(*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *);
	int     (*flash_device)(struct net_device *, struct ethtool_flash *);
+10 −48
Original line number Diff line number Diff line
@@ -198,13 +198,6 @@ static int ethtool_get_drvinfo(struct net_device *dev, void __user *useraddr)
		rc = ops->get_sset_count(dev, ETH_SS_PRIV_FLAGS);
		if (rc >= 0)
			info.n_priv_flags = rc;
	} else {
		/* code path for obsolete hooks */

		if (ops->self_test_count)
			info.testinfo_len = ops->self_test_count(dev);
		if (ops->get_stats_count)
			info.n_stats = ops->get_stats_count(dev);
	}
	if (ops->get_regs_len)
		info.regdump_len = ops->get_regs_len(dev);
@@ -684,16 +677,10 @@ static int ethtool_self_test(struct net_device *dev, char __user *useraddr)
	u64 *data;
	int ret, test_len;

	if (!ops->self_test)
		return -EOPNOTSUPP;
	if (!ops->get_sset_count && !ops->self_test_count)
	if (!ops->self_test || !ops->get_sset_count)
		return -EOPNOTSUPP;

	if (ops->get_sset_count)
	test_len = ops->get_sset_count(dev, ETH_SS_TEST);
	else
		/* code path for obsolete hook */
		test_len = ops->self_test_count(dev);
	if (test_len < 0)
		return test_len;
	WARN_ON(test_len == 0);
@@ -728,36 +715,17 @@ static int ethtool_get_strings(struct net_device *dev, void __user *useraddr)
	u8 *data;
	int ret;

	if (!ops->get_strings)
	if (!ops->get_strings || !ops->get_sset_count)
		return -EOPNOTSUPP;

	if (copy_from_user(&gstrings, useraddr, sizeof(gstrings)))
		return -EFAULT;

	if (ops->get_sset_count) {
	ret = ops->get_sset_count(dev, gstrings.string_set);
	if (ret < 0)
		return ret;

	gstrings.len = ret;
	} else {
		/* code path for obsolete hooks */

		switch (gstrings.string_set) {
		case ETH_SS_TEST:
			if (!ops->self_test_count)
				return -EOPNOTSUPP;
			gstrings.len = ops->self_test_count(dev);
			break;
		case ETH_SS_STATS:
			if (!ops->get_stats_count)
				return -EOPNOTSUPP;
			gstrings.len = ops->get_stats_count(dev);
			break;
		default:
			return -EINVAL;
		}
	}

	data = kmalloc(gstrings.len * ETH_GSTRING_LEN, GFP_USER);
	if (!data)
@@ -798,16 +766,10 @@ static int ethtool_get_stats(struct net_device *dev, void __user *useraddr)
	u64 *data;
	int ret, n_stats;

	if (!ops->get_ethtool_stats)
		return -EOPNOTSUPP;
	if (!ops->get_sset_count && !ops->get_stats_count)
	if (!ops->get_ethtool_stats || !ops->get_sset_count)
		return -EOPNOTSUPP;

	if (ops->get_sset_count)
	n_stats = ops->get_sset_count(dev, ETH_SS_STATS);
	else
		/* code path for obsolete hook */
		n_stats = ops->get_stats_count(dev);
	if (n_stats < 0)
		return n_stats;
	WARN_ON(n_stats == 0);