[netdrvr] Stop using legacy hooks ->self_test_count, ->get_stats_count
These have been superceded by the new ->get_sset_count() hook. Signed-off-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
753f492093
commit
b9f2c0440d
35 changed files with 345 additions and 245 deletions
|
|
@ -2833,9 +2833,14 @@ static void vortex_set_msglevel(struct net_device *dev, u32 dbg)
|
|||
vortex_debug = dbg;
|
||||
}
|
||||
|
||||
static int vortex_get_stats_count(struct net_device *dev)
|
||||
static int vortex_get_sset_count(struct net_device *dev, int sset)
|
||||
{
|
||||
return VORTEX_NUM_STATS;
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return VORTEX_NUM_STATS;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void vortex_get_ethtool_stats(struct net_device *dev,
|
||||
|
|
@ -2892,7 +2897,7 @@ static const struct ethtool_ops vortex_ethtool_ops = {
|
|||
.get_msglevel = vortex_get_msglevel,
|
||||
.set_msglevel = vortex_set_msglevel,
|
||||
.get_ethtool_stats = vortex_get_ethtool_stats,
|
||||
.get_stats_count = vortex_get_stats_count,
|
||||
.get_sset_count = vortex_get_sset_count,
|
||||
.get_settings = vortex_get_settings,
|
||||
.set_settings = vortex_set_settings,
|
||||
.get_link = ethtool_op_get_link,
|
||||
|
|
|
|||
|
|
@ -1383,9 +1383,14 @@ static int cp_get_regs_len(struct net_device *dev)
|
|||
return CP_REGS_SIZE;
|
||||
}
|
||||
|
||||
static int cp_get_stats_count (struct net_device *dev)
|
||||
static int cp_get_sset_count (struct net_device *dev, int sset)
|
||||
{
|
||||
return CP_NUM_STATS;
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return CP_NUM_STATS;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static int cp_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
|
||||
|
|
@ -1563,7 +1568,7 @@ static void cp_get_ethtool_stats (struct net_device *dev,
|
|||
static const struct ethtool_ops cp_ethtool_ops = {
|
||||
.get_drvinfo = cp_get_drvinfo,
|
||||
.get_regs_len = cp_get_regs_len,
|
||||
.get_stats_count = cp_get_stats_count,
|
||||
.get_sset_count = cp_get_sset_count,
|
||||
.get_settings = cp_get_settings,
|
||||
.set_settings = cp_set_settings,
|
||||
.nway_reset = cp_nway_reset,
|
||||
|
|
|
|||
|
|
@ -2406,9 +2406,14 @@ static void rtl8139_get_regs(struct net_device *dev, struct ethtool_regs *regs,
|
|||
}
|
||||
#endif /* CONFIG_8139TOO_MMIO */
|
||||
|
||||
static int rtl8139_get_stats_count(struct net_device *dev)
|
||||
static int rtl8139_get_sset_count(struct net_device *dev, int sset)
|
||||
{
|
||||
return RTL_NUM_STATS;
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return RTL_NUM_STATS;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void rtl8139_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats, u64 *data)
|
||||
|
|
@ -2439,7 +2444,7 @@ static const struct ethtool_ops rtl8139_ethtool_ops = {
|
|||
.get_wol = rtl8139_get_wol,
|
||||
.set_wol = rtl8139_set_wol,
|
||||
.get_strings = rtl8139_get_strings,
|
||||
.get_stats_count = rtl8139_get_stats_count,
|
||||
.get_sset_count = rtl8139_get_sset_count,
|
||||
.get_ethtool_stats = rtl8139_get_ethtool_stats,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -88,9 +88,14 @@ static void atl1_get_ethtool_stats(struct net_device *netdev,
|
|||
|
||||
}
|
||||
|
||||
static int atl1_get_stats_count(struct net_device *netdev)
|
||||
static int atl1_get_sset_count(struct net_device *netdev, int sset)
|
||||
{
|
||||
return ARRAY_SIZE(atl1_gstrings_stats);
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return ARRAY_SIZE(atl1_gstrings_stats);
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static int atl1_get_settings(struct net_device *netdev,
|
||||
|
|
@ -495,6 +500,6 @@ const struct ethtool_ops atl1_ethtool_ops = {
|
|||
.get_strings = atl1_get_strings,
|
||||
.nway_reset = atl1_nway_reset,
|
||||
.get_ethtool_stats = atl1_get_ethtool_stats,
|
||||
.get_stats_count = atl1_get_stats_count,
|
||||
.get_sset_count = atl1_get_sset_count,
|
||||
.set_tso = ethtool_op_set_tso,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1962,9 +1962,14 @@ static void b44_get_strings(struct net_device *dev, u32 stringset, u8 *data)
|
|||
}
|
||||
}
|
||||
|
||||
static int b44_get_stats_count(struct net_device *dev)
|
||||
static int b44_get_sset_count(struct net_device *dev, int sset)
|
||||
{
|
||||
return ARRAY_SIZE(b44_gstrings);
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return ARRAY_SIZE(b44_gstrings);
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void b44_get_ethtool_stats(struct net_device *dev,
|
||||
|
|
@ -2025,7 +2030,7 @@ static const struct ethtool_ops b44_ethtool_ops = {
|
|||
.get_msglevel = b44_get_msglevel,
|
||||
.set_msglevel = b44_set_msglevel,
|
||||
.get_strings = b44_get_strings,
|
||||
.get_stats_count = b44_get_stats_count,
|
||||
.get_sset_count = b44_get_sset_count,
|
||||
.get_ethtool_stats = b44_get_ethtool_stats,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -6068,9 +6068,16 @@ static struct {
|
|||
};
|
||||
|
||||
static int
|
||||
bnx2_self_test_count(struct net_device *dev)
|
||||
bnx2_get_sset_count(struct net_device *dev, int sset)
|
||||
{
|
||||
return BNX2_NUM_TESTS;
|
||||
switch (sset) {
|
||||
case ETH_SS_TEST:
|
||||
return BNX2_NUM_TESTS;
|
||||
case ETH_SS_STATS:
|
||||
return BNX2_NUM_STATS;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -6144,12 +6151,6 @@ bnx2_get_strings(struct net_device *dev, u32 stringset, u8 *buf)
|
|||
}
|
||||
}
|
||||
|
||||
static int
|
||||
bnx2_get_stats_count(struct net_device *dev)
|
||||
{
|
||||
return BNX2_NUM_STATS;
|
||||
}
|
||||
|
||||
static void
|
||||
bnx2_get_ethtool_stats(struct net_device *dev,
|
||||
struct ethtool_stats *stats, u64 *buf)
|
||||
|
|
@ -6260,12 +6261,11 @@ static const struct ethtool_ops bnx2_ethtool_ops = {
|
|||
.set_tx_csum = bnx2_set_tx_csum,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.set_tso = bnx2_set_tso,
|
||||
.self_test_count = bnx2_self_test_count,
|
||||
.self_test = bnx2_self_test,
|
||||
.get_strings = bnx2_get_strings,
|
||||
.phys_id = bnx2_phys_id,
|
||||
.get_stats_count = bnx2_get_stats_count,
|
||||
.get_ethtool_stats = bnx2_get_ethtool_stats,
|
||||
.get_sset_count = bnx2_get_sset_count,
|
||||
};
|
||||
|
||||
/* Called with rtnl_lock */
|
||||
|
|
|
|||
|
|
@ -4772,9 +4772,14 @@ static void cas_get_regs(struct net_device *dev, struct ethtool_regs *regs,
|
|||
cas_read_regs(cp, p, regs->len / sizeof(u32));
|
||||
}
|
||||
|
||||
static int cas_get_stats_count(struct net_device *dev)
|
||||
static int cas_get_sset_count(struct net_device *dev, int sset)
|
||||
{
|
||||
return CAS_NUM_STAT_KEYS;
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return CAS_NUM_STAT_KEYS;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void cas_get_strings(struct net_device *dev, u32 stringset, u8 *data)
|
||||
|
|
@ -4818,7 +4823,7 @@ static const struct ethtool_ops cas_ethtool_ops = {
|
|||
.set_msglevel = cas_set_msglevel,
|
||||
.get_regs_len = cas_get_regs_len,
|
||||
.get_regs = cas_get_regs,
|
||||
.get_stats_count = cas_get_stats_count,
|
||||
.get_sset_count = cas_get_sset_count,
|
||||
.get_strings = cas_get_strings,
|
||||
.get_ethtool_stats = cas_get_ethtool_stats,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -439,9 +439,14 @@ static void get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
|
|||
strcpy(info->bus_info, pci_name(adapter->pdev));
|
||||
}
|
||||
|
||||
static int get_stats_count(struct net_device *dev)
|
||||
static int get_sset_count(struct net_device *dev, int sset)
|
||||
{
|
||||
return ARRAY_SIZE(stats_strings);
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return ARRAY_SIZE(stats_strings);
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void get_strings(struct net_device *dev, u32 stringset, u8 *data)
|
||||
|
|
@ -798,7 +803,7 @@ static const struct ethtool_ops t1_ethtool_ops = {
|
|||
.set_sg = ethtool_op_set_sg,
|
||||
.get_link = ethtool_op_get_link,
|
||||
.get_strings = get_strings,
|
||||
.get_stats_count = get_stats_count,
|
||||
.get_sset_count = get_sset_count,
|
||||
.get_ethtool_stats = get_stats,
|
||||
.get_regs_len = get_regs_len,
|
||||
.get_regs = get_regs,
|
||||
|
|
|
|||
|
|
@ -1131,9 +1131,14 @@ static char stats_strings[][ETH_GSTRING_LEN] = {
|
|||
|
||||
};
|
||||
|
||||
static int get_stats_count(struct net_device *dev)
|
||||
static int get_sset_count(struct net_device *dev, int sset)
|
||||
{
|
||||
return ARRAY_SIZE(stats_strings);
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return ARRAY_SIZE(stats_strings);
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
#define T3_REGMAP_SIZE (3 * 1024)
|
||||
|
|
@ -1640,7 +1645,7 @@ static const struct ethtool_ops cxgb_ethtool_ops = {
|
|||
.get_strings = get_strings,
|
||||
.phys_id = cxgb3_phys_id,
|
||||
.nway_reset = restart_autoneg,
|
||||
.get_stats_count = get_stats_count,
|
||||
.get_sset_count = get_sset_count,
|
||||
.get_ethtool_stats = get_stats,
|
||||
.get_regs_len = get_regs_len,
|
||||
.get_regs = get_regs,
|
||||
|
|
|
|||
|
|
@ -2374,11 +2374,6 @@ static const char e100_gstrings_test[][ETH_GSTRING_LEN] = {
|
|||
};
|
||||
#define E100_TEST_LEN sizeof(e100_gstrings_test) / ETH_GSTRING_LEN
|
||||
|
||||
static int e100_diag_test_count(struct net_device *netdev)
|
||||
{
|
||||
return E100_TEST_LEN;
|
||||
}
|
||||
|
||||
static void e100_diag_test(struct net_device *netdev,
|
||||
struct ethtool_test *test, u64 *data)
|
||||
{
|
||||
|
|
@ -2441,9 +2436,16 @@ static const char e100_gstrings_stats[][ETH_GSTRING_LEN] = {
|
|||
#define E100_NET_STATS_LEN 21
|
||||
#define E100_STATS_LEN sizeof(e100_gstrings_stats) / ETH_GSTRING_LEN
|
||||
|
||||
static int e100_get_stats_count(struct net_device *netdev)
|
||||
static int e100_get_sset_count(struct net_device *netdev, int sset)
|
||||
{
|
||||
return E100_STATS_LEN;
|
||||
switch (sset) {
|
||||
case ETH_SS_TEST:
|
||||
return E100_TEST_LEN;
|
||||
case ETH_SS_STATS:
|
||||
return E100_STATS_LEN;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void e100_get_ethtool_stats(struct net_device *netdev,
|
||||
|
|
@ -2494,12 +2496,11 @@ static const struct ethtool_ops e100_ethtool_ops = {
|
|||
.set_eeprom = e100_set_eeprom,
|
||||
.get_ringparam = e100_get_ringparam,
|
||||
.set_ringparam = e100_set_ringparam,
|
||||
.self_test_count = e100_diag_test_count,
|
||||
.self_test = e100_diag_test,
|
||||
.get_strings = e100_get_strings,
|
||||
.phys_id = e100_phys_id,
|
||||
.get_stats_count = e100_get_stats_count,
|
||||
.get_ethtool_stats = e100_get_ethtool_stats,
|
||||
.get_sset_count = e100_get_sset_count,
|
||||
};
|
||||
|
||||
static int e100_do_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
|
||||
|
|
|
|||
|
|
@ -618,8 +618,6 @@ e1000_get_drvinfo(struct net_device *netdev,
|
|||
|
||||
strncpy(drvinfo->fw_version, firmware_version, 32);
|
||||
strncpy(drvinfo->bus_info, pci_name(adapter->pdev), 32);
|
||||
drvinfo->n_stats = E1000_STATS_LEN;
|
||||
drvinfo->testinfo_len = E1000_TEST_LEN;
|
||||
drvinfo->regdump_len = e1000_get_regs_len(netdev);
|
||||
drvinfo->eedump_len = e1000_get_eeprom_len(netdev);
|
||||
}
|
||||
|
|
@ -1611,9 +1609,16 @@ e1000_link_test(struct e1000_adapter *adapter, uint64_t *data)
|
|||
}
|
||||
|
||||
static int
|
||||
e1000_diag_test_count(struct net_device *netdev)
|
||||
e1000_get_sset_count(struct net_device *netdev, int sset)
|
||||
{
|
||||
return E1000_TEST_LEN;
|
||||
switch (sset) {
|
||||
case ETH_SS_TEST:
|
||||
return E1000_TEST_LEN;
|
||||
case ETH_SS_STATS:
|
||||
return E1000_STATS_LEN;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
extern void e1000_power_up_phy(struct e1000_adapter *);
|
||||
|
|
@ -1898,12 +1903,6 @@ e1000_nway_reset(struct net_device *netdev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
e1000_get_stats_count(struct net_device *netdev)
|
||||
{
|
||||
return E1000_STATS_LEN;
|
||||
}
|
||||
|
||||
static void
|
||||
e1000_get_ethtool_stats(struct net_device *netdev,
|
||||
struct ethtool_stats *stats, uint64_t *data)
|
||||
|
|
@ -1967,12 +1966,11 @@ static const struct ethtool_ops e1000_ethtool_ops = {
|
|||
.set_tx_csum = e1000_set_tx_csum,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.set_tso = e1000_set_tso,
|
||||
.self_test_count = e1000_diag_test_count,
|
||||
.self_test = e1000_diag_test,
|
||||
.get_strings = e1000_get_strings,
|
||||
.phys_id = e1000_phys_id,
|
||||
.get_stats_count = e1000_get_stats_count,
|
||||
.get_ethtool_stats = e1000_get_ethtool_stats,
|
||||
.get_sset_count = e1000_get_sset_count,
|
||||
};
|
||||
|
||||
void e1000_set_ethtool_ops(struct net_device *netdev)
|
||||
|
|
|
|||
|
|
@ -577,8 +577,6 @@ static void e1000_get_drvinfo(struct net_device *netdev,
|
|||
|
||||
strncpy(drvinfo->fw_version, firmware_version, 32);
|
||||
strncpy(drvinfo->bus_info, pci_name(adapter->pdev), 32);
|
||||
drvinfo->n_stats = E1000_STATS_LEN;
|
||||
drvinfo->testinfo_len = E1000_TEST_LEN;
|
||||
drvinfo->regdump_len = e1000_get_regs_len(netdev);
|
||||
drvinfo->eedump_len = e1000_get_eeprom_len(netdev);
|
||||
}
|
||||
|
|
@ -1493,9 +1491,16 @@ static int e1000_link_test(struct e1000_adapter *adapter, u64 *data)
|
|||
return *data;
|
||||
}
|
||||
|
||||
static int e1000_diag_test_count(struct net_device *netdev)
|
||||
static int e1000e_get_sset_count(struct net_device *netdev, int sset)
|
||||
{
|
||||
return E1000_TEST_LEN;
|
||||
switch (sset) {
|
||||
case ETH_SS_TEST:
|
||||
return E1000_TEST_LEN;
|
||||
case ETH_SS_STATS:
|
||||
return E1000_STATS_LEN;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void e1000_diag_test(struct net_device *netdev,
|
||||
|
|
@ -1692,11 +1697,6 @@ static int e1000_nway_reset(struct net_device *netdev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int e1000_get_stats_count(struct net_device *netdev)
|
||||
{
|
||||
return E1000_STATS_LEN;
|
||||
}
|
||||
|
||||
static void e1000_get_ethtool_stats(struct net_device *netdev,
|
||||
struct ethtool_stats *stats,
|
||||
u64 *data)
|
||||
|
|
@ -1760,12 +1760,11 @@ static const struct ethtool_ops e1000_ethtool_ops = {
|
|||
.set_sg = ethtool_op_set_sg,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = e1000_set_tso,
|
||||
.self_test_count = e1000_diag_test_count,
|
||||
.self_test = e1000_diag_test,
|
||||
.get_strings = e1000_get_strings,
|
||||
.phys_id = e1000_phys_id,
|
||||
.get_stats_count = e1000_get_stats_count,
|
||||
.get_ethtool_stats = e1000_get_ethtool_stats,
|
||||
.get_sset_count = e1000e_get_sset_count,
|
||||
};
|
||||
|
||||
void e1000e_set_ethtool_ops(struct net_device *netdev)
|
||||
|
|
|
|||
|
|
@ -196,9 +196,14 @@ static void ehea_get_strings(struct net_device *dev, u32 stringset, u8 *data)
|
|||
}
|
||||
}
|
||||
|
||||
static int ehea_get_stats_count(struct net_device *dev)
|
||||
static int ehea_get_sset_count(struct net_device *dev, int sset)
|
||||
{
|
||||
return ARRAY_SIZE(ehea_ethtool_stats_keys);
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return ARRAY_SIZE(ehea_ethtool_stats_keys);
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void ehea_get_ethtool_stats(struct net_device *dev,
|
||||
|
|
@ -207,7 +212,7 @@ static void ehea_get_ethtool_stats(struct net_device *dev,
|
|||
int i, k, tmp;
|
||||
struct ehea_port *port = netdev_priv(dev);
|
||||
|
||||
for (i = 0; i < ehea_get_stats_count(dev); i++)
|
||||
for (i = 0; i < ehea_get_sset_count(dev, ETH_SS_STATS); i++)
|
||||
data[i] = 0;
|
||||
i = 0;
|
||||
|
||||
|
|
@ -264,7 +269,7 @@ const struct ethtool_ops ehea_ethtool_ops = {
|
|||
.get_link = ethtool_op_get_link,
|
||||
.set_tso = ethtool_op_set_tso,
|
||||
.get_strings = ehea_get_strings,
|
||||
.get_stats_count = ehea_get_stats_count,
|
||||
.get_sset_count = ehea_get_sset_count,
|
||||
.get_ethtool_stats = ehea_get_ethtool_stats,
|
||||
.get_rx_csum = ehea_get_rx_csum,
|
||||
.set_settings = ehea_set_settings,
|
||||
|
|
|
|||
|
|
@ -4333,16 +4333,26 @@ static int nv_set_sg(struct net_device *dev, u32 data)
|
|||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static int nv_get_stats_count(struct net_device *dev)
|
||||
static int nv_get_sset_count(struct net_device *dev, int sset)
|
||||
{
|
||||
struct fe_priv *np = netdev_priv(dev);
|
||||
|
||||
if (np->driver_data & DEV_HAS_STATISTICS_V1)
|
||||
return NV_DEV_STATISTICS_V1_COUNT;
|
||||
else if (np->driver_data & DEV_HAS_STATISTICS_V2)
|
||||
return NV_DEV_STATISTICS_V2_COUNT;
|
||||
else
|
||||
return 0;
|
||||
switch (sset) {
|
||||
case ETH_SS_TEST:
|
||||
if (np->driver_data & DEV_HAS_TEST_EXTENDED)
|
||||
return NV_TEST_COUNT_EXTENDED;
|
||||
else
|
||||
return NV_TEST_COUNT_BASE;
|
||||
case ETH_SS_STATS:
|
||||
if (np->driver_data & DEV_HAS_STATISTICS_V1)
|
||||
return NV_DEV_STATISTICS_V1_COUNT;
|
||||
else if (np->driver_data & DEV_HAS_STATISTICS_V2)
|
||||
return NV_DEV_STATISTICS_V2_COUNT;
|
||||
else
|
||||
return 0;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void nv_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *estats, u64 *buffer)
|
||||
|
|
@ -4352,17 +4362,7 @@ static void nv_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *e
|
|||
/* update stats */
|
||||
nv_do_stats_poll((unsigned long)dev);
|
||||
|
||||
memcpy(buffer, &np->estats, nv_get_stats_count(dev)*sizeof(u64));
|
||||
}
|
||||
|
||||
static int nv_self_test_count(struct net_device *dev)
|
||||
{
|
||||
struct fe_priv *np = netdev_priv(dev);
|
||||
|
||||
if (np->driver_data & DEV_HAS_TEST_EXTENDED)
|
||||
return NV_TEST_COUNT_EXTENDED;
|
||||
else
|
||||
return NV_TEST_COUNT_BASE;
|
||||
memcpy(buffer, &np->estats, nv_get_sset_count(dev, ETH_SS_STATS)*sizeof(u64));
|
||||
}
|
||||
|
||||
static int nv_link_test(struct net_device *dev)
|
||||
|
|
@ -4609,7 +4609,7 @@ static void nv_self_test(struct net_device *dev, struct ethtool_test *test, u64
|
|||
struct fe_priv *np = netdev_priv(dev);
|
||||
u8 __iomem *base = get_hwbase(dev);
|
||||
int result;
|
||||
memset(buffer, 0, nv_self_test_count(dev)*sizeof(u64));
|
||||
memset(buffer, 0, nv_get_sset_count(dev, ETH_SS_TEST)*sizeof(u64));
|
||||
|
||||
if (!nv_link_test(dev)) {
|
||||
test->flags |= ETH_TEST_FL_FAILED;
|
||||
|
|
@ -4692,10 +4692,10 @@ static void nv_get_strings(struct net_device *dev, u32 stringset, u8 *buffer)
|
|||
{
|
||||
switch (stringset) {
|
||||
case ETH_SS_STATS:
|
||||
memcpy(buffer, &nv_estats_str, nv_get_stats_count(dev)*sizeof(struct nv_ethtool_str));
|
||||
memcpy(buffer, &nv_estats_str, nv_get_sset_count(dev, ETH_SS_STATS)*sizeof(struct nv_ethtool_str));
|
||||
break;
|
||||
case ETH_SS_TEST:
|
||||
memcpy(buffer, &nv_etests_str, nv_self_test_count(dev)*sizeof(struct nv_ethtool_str));
|
||||
memcpy(buffer, &nv_etests_str, nv_get_sset_count(dev, ETH_SS_TEST)*sizeof(struct nv_ethtool_str));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -4720,9 +4720,8 @@ static const struct ethtool_ops ops = {
|
|||
.set_tx_csum = nv_set_tx_csum,
|
||||
.set_sg = nv_set_sg,
|
||||
.get_strings = nv_get_strings,
|
||||
.get_stats_count = nv_get_stats_count,
|
||||
.get_ethtool_stats = nv_get_ethtool_stats,
|
||||
.self_test_count = nv_self_test_count,
|
||||
.get_sset_count = nv_get_sset_count,
|
||||
.self_test = nv_self_test,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -152,15 +152,19 @@ static void gfar_fill_stats(struct net_device *dev, struct ethtool_stats *dummy,
|
|||
buf[i] = extra[i];
|
||||
}
|
||||
|
||||
/* Returns the number of stats (and their corresponding strings) */
|
||||
static int gfar_stats_count(struct net_device *dev)
|
||||
static int gfar_sset_count(struct net_device *dev, int sset)
|
||||
{
|
||||
struct gfar_private *priv = netdev_priv(dev);
|
||||
|
||||
if (priv->einfo->device_flags & FSL_GIANFAR_DEV_HAS_RMON)
|
||||
return GFAR_STATS_LEN;
|
||||
else
|
||||
return GFAR_EXTRA_STATS_LEN;
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
if (priv->einfo->device_flags & FSL_GIANFAR_DEV_HAS_RMON)
|
||||
return GFAR_STATS_LEN;
|
||||
else
|
||||
return GFAR_EXTRA_STATS_LEN;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
/* Fills in the drvinfo structure with some basic info */
|
||||
|
|
@ -171,8 +175,6 @@ static void gfar_gdrvinfo(struct net_device *dev, struct
|
|||
strncpy(drvinfo->version, gfar_driver_version, GFAR_INFOSTR_LEN);
|
||||
strncpy(drvinfo->fw_version, "N/A", GFAR_INFOSTR_LEN);
|
||||
strncpy(drvinfo->bus_info, "N/A", GFAR_INFOSTR_LEN);
|
||||
drvinfo->n_stats = GFAR_STATS_LEN;
|
||||
drvinfo->testinfo_len = 0;
|
||||
drvinfo->regdump_len = 0;
|
||||
drvinfo->eedump_len = 0;
|
||||
}
|
||||
|
|
@ -575,7 +577,7 @@ const struct ethtool_ops gfar_ethtool_ops = {
|
|||
.get_ringparam = gfar_gringparam,
|
||||
.set_ringparam = gfar_sringparam,
|
||||
.get_strings = gfar_gstrings,
|
||||
.get_stats_count = gfar_stats_count,
|
||||
.get_sset_count = gfar_sset_count,
|
||||
.get_ethtool_stats = gfar_fill_stats,
|
||||
.get_rx_csum = gfar_get_rx_csum,
|
||||
.get_tx_csum = gfar_get_tx_csum,
|
||||
|
|
|
|||
|
|
@ -1842,9 +1842,14 @@ static int emac_ethtool_nway_reset(struct net_device *ndev)
|
|||
return res;
|
||||
}
|
||||
|
||||
static int emac_ethtool_get_stats_count(struct net_device *ndev)
|
||||
static int emac_get_sset_count(struct net_device *ndev, int sset)
|
||||
{
|
||||
return EMAC_ETHTOOL_STATS_COUNT;
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return EMAC_ETHTOOL_STATS_COUNT;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void emac_ethtool_get_strings(struct net_device *ndev, u32 stringset,
|
||||
|
|
@ -1875,7 +1880,6 @@ static void emac_ethtool_get_drvinfo(struct net_device *ndev,
|
|||
strcpy(info->version, DRV_VERSION);
|
||||
info->fw_version[0] = '\0';
|
||||
sprintf(info->bus_info, "PPC 4xx EMAC %d", dev->def->index);
|
||||
info->n_stats = emac_ethtool_get_stats_count(ndev);
|
||||
info->regdump_len = emac_ethtool_get_regs_len(ndev);
|
||||
}
|
||||
|
||||
|
|
@ -1895,7 +1899,7 @@ static const struct ethtool_ops emac_ethtool_ops = {
|
|||
.get_rx_csum = emac_ethtool_get_rx_csum,
|
||||
|
||||
.get_strings = emac_ethtool_get_strings,
|
||||
.get_stats_count = emac_ethtool_get_stats_count,
|
||||
.get_sset_count = emac_get_sset_count,
|
||||
.get_ethtool_stats = emac_ethtool_get_ethtool_stats,
|
||||
|
||||
.get_link = ethtool_op_get_link,
|
||||
|
|
|
|||
|
|
@ -802,9 +802,14 @@ static void ibmveth_get_strings(struct net_device *dev, u32 stringset, u8 *data)
|
|||
memcpy(data, ibmveth_stats[i].name, ETH_GSTRING_LEN);
|
||||
}
|
||||
|
||||
static int ibmveth_get_stats_count(struct net_device *dev)
|
||||
static int ibmveth_get_sset_count(struct net_device *dev, int sset)
|
||||
{
|
||||
return ARRAY_SIZE(ibmveth_stats);
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return ARRAY_SIZE(ibmveth_stats);
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void ibmveth_get_ethtool_stats(struct net_device *dev,
|
||||
|
|
@ -825,7 +830,7 @@ static const struct ethtool_ops netdev_ethtool_ops = {
|
|||
.get_rx_csum = ibmveth_get_rx_csum,
|
||||
.set_rx_csum = ibmveth_set_rx_csum,
|
||||
.get_strings = ibmveth_get_strings,
|
||||
.get_stats_count = ibmveth_get_stats_count,
|
||||
.get_sset_count = ibmveth_get_sset_count,
|
||||
.get_ethtool_stats = ibmveth_get_ethtool_stats,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -659,9 +659,14 @@ ixgb_phys_id(struct net_device *netdev, uint32_t data)
|
|||
}
|
||||
|
||||
static int
|
||||
ixgb_get_stats_count(struct net_device *netdev)
|
||||
ixgb_get_sset_count(struct net_device *netdev, int sset)
|
||||
{
|
||||
return IXGB_STATS_LEN;
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return IXGB_STATS_LEN;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -719,7 +724,7 @@ static const struct ethtool_ops ixgb_ethtool_ops = {
|
|||
.set_tso = ixgb_set_tso,
|
||||
.get_strings = ixgb_get_strings,
|
||||
.phys_id = ixgb_phys_id,
|
||||
.get_stats_count = ixgb_get_stats_count,
|
||||
.get_sset_count = ixgb_get_sset_count,
|
||||
.get_ethtool_stats = ixgb_get_ethtool_stats,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -737,9 +737,14 @@ err_setup:
|
|||
return err;
|
||||
}
|
||||
|
||||
static int ixgbe_get_stats_count(struct net_device *netdev)
|
||||
static int ixgbe_get_sset_count(struct net_device *netdev, int sset)
|
||||
{
|
||||
return IXGBE_STATS_LEN;
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return IXGBE_STATS_LEN;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void ixgbe_get_ethtool_stats(struct net_device *netdev,
|
||||
|
|
@ -931,7 +936,7 @@ static struct ethtool_ops ixgbe_ethtool_ops = {
|
|||
.set_tso = ixgbe_set_tso,
|
||||
.get_strings = ixgbe_get_strings,
|
||||
.phys_id = ixgbe_phys_id,
|
||||
.get_stats_count = ixgbe_get_stats_count,
|
||||
.get_sset_count = ixgbe_get_sset_count,
|
||||
.get_ethtool_stats = ixgbe_get_ethtool_stats,
|
||||
.get_coalesce = ixgbe_get_coalesce,
|
||||
.set_coalesce = ixgbe_set_coalesce,
|
||||
|
|
|
|||
|
|
@ -2674,9 +2674,14 @@ static void mv643xx_get_drvinfo(struct net_device *netdev,
|
|||
drvinfo->n_stats = MV643XX_STATS_LEN;
|
||||
}
|
||||
|
||||
static int mv643xx_get_stats_count(struct net_device *netdev)
|
||||
static int mv643xx_get_sset_count(struct net_device *netdev, int sset)
|
||||
{
|
||||
return MV643XX_STATS_LEN;
|
||||
switch (sset) {
|
||||
case ETH_SS_STATS:
|
||||
return MV643XX_STATS_LEN;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static void mv643xx_get_ethtool_stats(struct net_device *netdev,
|
||||
|
|
@ -2737,7 +2742,6 @@ static const struct ethtool_ops mv643xx_ethtool_ops = {
|
|||
.get_drvinfo = mv643xx_get_drvinfo,
|
||||
.get_link = mv643xx_eth_get_link,
|
||||
.set_sg = ethtool_op_set_sg,
|
||||
.get_stats_count = mv643xx_get_stats_count,
|
||||
.get_ethtool_stats = mv643xx_get_ethtool_stats,
|
||||
.get_strings = mv643xx_get_strings,
|
||||
.nway_reset = mv643xx_eth_nway_restart,
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue