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

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
...@@ -495,10 +495,6 @@ struct ethtool_ops { ...@@ -495,10 +495,6 @@ struct ethtool_ops {
u32 (*get_priv_flags)(struct net_device *); u32 (*get_priv_flags)(struct net_device *);
int (*set_priv_flags)(struct net_device *, u32); int (*set_priv_flags)(struct net_device *, u32);
int (*get_sset_count)(struct net_device *, int); 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 (*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, void *);
int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *); int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *);
int (*flash_device)(struct net_device *, struct ethtool_flash *); int (*flash_device)(struct net_device *, struct ethtool_flash *);
......
...@@ -198,13 +198,6 @@ static int ethtool_get_drvinfo(struct net_device *dev, void __user *useraddr) ...@@ -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); rc = ops->get_sset_count(dev, ETH_SS_PRIV_FLAGS);
if (rc >= 0) if (rc >= 0)
info.n_priv_flags = rc; 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) if (ops->get_regs_len)
info.regdump_len = ops->get_regs_len(dev); info.regdump_len = ops->get_regs_len(dev);
...@@ -684,16 +677,10 @@ static int ethtool_self_test(struct net_device *dev, char __user *useraddr) ...@@ -684,16 +677,10 @@ static int ethtool_self_test(struct net_device *dev, char __user *useraddr)
u64 *data; u64 *data;
int ret, test_len; int ret, test_len;
if (!ops->self_test) if (!ops->self_test || !ops->get_sset_count)
return -EOPNOTSUPP;
if (!ops->get_sset_count && !ops->self_test_count)
return -EOPNOTSUPP; return -EOPNOTSUPP;
if (ops->get_sset_count) test_len = ops->get_sset_count(dev, ETH_SS_TEST);
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) if (test_len < 0)
return test_len; return test_len;
WARN_ON(test_len == 0); WARN_ON(test_len == 0);
...@@ -728,36 +715,17 @@ static int ethtool_get_strings(struct net_device *dev, void __user *useraddr) ...@@ -728,36 +715,17 @@ static int ethtool_get_strings(struct net_device *dev, void __user *useraddr)
u8 *data; u8 *data;
int ret; int ret;
if (!ops->get_strings) if (!ops->get_strings || !ops->get_sset_count)
return -EOPNOTSUPP; return -EOPNOTSUPP;
if (copy_from_user(&gstrings, useraddr, sizeof(gstrings))) if (copy_from_user(&gstrings, useraddr, sizeof(gstrings)))
return -EFAULT; return -EFAULT;
if (ops->get_sset_count) { ret = ops->get_sset_count(dev, gstrings.string_set);
ret = ops->get_sset_count(dev, gstrings.string_set); if (ret < 0)
if (ret < 0) return ret;
return ret;
gstrings.len = 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); data = kmalloc(gstrings.len * ETH_GSTRING_LEN, GFP_USER);
if (!data) if (!data)
...@@ -798,16 +766,10 @@ static int ethtool_get_stats(struct net_device *dev, void __user *useraddr) ...@@ -798,16 +766,10 @@ static int ethtool_get_stats(struct net_device *dev, void __user *useraddr)
u64 *data; u64 *data;
int ret, n_stats; int ret, n_stats;
if (!ops->get_ethtool_stats) if (!ops->get_ethtool_stats || !ops->get_sset_count)
return -EOPNOTSUPP;
if (!ops->get_sset_count && !ops->get_stats_count)
return -EOPNOTSUPP; return -EOPNOTSUPP;
if (ops->get_sset_count) n_stats = ops->get_sset_count(dev, ETH_SS_STATS);
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) if (n_stats < 0)
return n_stats; return n_stats;
WARN_ON(n_stats == 0); WARN_ON(n_stats == 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment