forked from Minki/linux
net: Convert ethtool {get_stats, self_test}_count() ops to get_sset_count()
These string query operations were supposed to be replaced by the generic get_sset_count() starting in 2007. Convert the remaining implementations. Also remove calls to these operations to initialise drvinfo->n_stats. The ethtool core code already does that. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Acked-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1ddee09ff0
commit
15f0a394c6
@ -1080,11 +1080,14 @@ static int nes_netdev_set_rx_csum(struct net_device *netdev, u32 enable)
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* nes_netdev_get_stats_count
|
* nes_netdev_get_sset_count
|
||||||
*/
|
*/
|
||||||
static int nes_netdev_get_stats_count(struct net_device *netdev)
|
static int nes_netdev_get_sset_count(struct net_device *netdev, int stringset)
|
||||||
{
|
{
|
||||||
|
if (stringset == ETH_SS_STATS)
|
||||||
return NES_ETHTOOL_STAT_COUNT;
|
return NES_ETHTOOL_STAT_COUNT;
|
||||||
|
else
|
||||||
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1264,7 +1267,6 @@ static void nes_netdev_get_drvinfo(struct net_device *netdev,
|
|||||||
sprintf(drvinfo->fw_version, "%u.%u", nesadapter->firmware_version>>16,
|
sprintf(drvinfo->fw_version, "%u.%u", nesadapter->firmware_version>>16,
|
||||||
nesadapter->firmware_version & 0x000000ff);
|
nesadapter->firmware_version & 0x000000ff);
|
||||||
strcpy(drvinfo->version, DRV_VERSION);
|
strcpy(drvinfo->version, DRV_VERSION);
|
||||||
drvinfo->n_stats = nes_netdev_get_stats_count(netdev);
|
|
||||||
drvinfo->testinfo_len = 0;
|
drvinfo->testinfo_len = 0;
|
||||||
drvinfo->eedump_len = 0;
|
drvinfo->eedump_len = 0;
|
||||||
drvinfo->regdump_len = 0;
|
drvinfo->regdump_len = 0;
|
||||||
@ -1516,7 +1518,7 @@ static const struct ethtool_ops nes_ethtool_ops = {
|
|||||||
.get_rx_csum = nes_netdev_get_rx_csum,
|
.get_rx_csum = nes_netdev_get_rx_csum,
|
||||||
.get_sg = ethtool_op_get_sg,
|
.get_sg = ethtool_op_get_sg,
|
||||||
.get_strings = nes_netdev_get_strings,
|
.get_strings = nes_netdev_get_strings,
|
||||||
.get_stats_count = nes_netdev_get_stats_count,
|
.get_sset_count = nes_netdev_get_sset_count,
|
||||||
.get_ethtool_stats = nes_netdev_get_ethtool_stats,
|
.get_ethtool_stats = nes_netdev_get_ethtool_stats,
|
||||||
.get_drvinfo = nes_netdev_get_drvinfo,
|
.get_drvinfo = nes_netdev_get_drvinfo,
|
||||||
.get_coalesce = nes_netdev_get_coalesce,
|
.get_coalesce = nes_netdev_get_coalesce,
|
||||||
|
@ -281,9 +281,14 @@ be_get_stat_strings(struct net_device *netdev, uint32_t stringset,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int be_get_stats_count(struct net_device *netdev)
|
static int be_get_sset_count(struct net_device *netdev, int stringset)
|
||||||
{
|
{
|
||||||
|
switch (stringset) {
|
||||||
|
case ETH_SS_STATS:
|
||||||
return ETHTOOL_STATS_NUM;
|
return ETHTOOL_STATS_NUM;
|
||||||
|
default:
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int be_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
|
static int be_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
|
||||||
@ -364,7 +369,7 @@ const struct ethtool_ops be_ethtool_ops = {
|
|||||||
.get_tso = ethtool_op_get_tso,
|
.get_tso = ethtool_op_get_tso,
|
||||||
.set_tso = ethtool_op_set_tso,
|
.set_tso = ethtool_op_set_tso,
|
||||||
.get_strings = be_get_stat_strings,
|
.get_strings = be_get_stat_strings,
|
||||||
.get_stats_count = be_get_stats_count,
|
.get_sset_count = be_get_sset_count,
|
||||||
.get_ethtool_stats = be_get_ethtool_stats,
|
.get_ethtool_stats = be_get_ethtool_stats,
|
||||||
.flash_device = be_do_flash,
|
.flash_device = be_do_flash,
|
||||||
};
|
};
|
||||||
|
@ -9818,11 +9818,6 @@ static const struct {
|
|||||||
{ "idle check (online)" }
|
{ "idle check (online)" }
|
||||||
};
|
};
|
||||||
|
|
||||||
static int bnx2x_self_test_count(struct net_device *dev)
|
|
||||||
{
|
|
||||||
return BNX2X_NUM_TESTS;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int bnx2x_test_registers(struct bnx2x *bp)
|
static int bnx2x_test_registers(struct bnx2x *bp)
|
||||||
{
|
{
|
||||||
int idx, i, rc = -ENODEV;
|
int idx, i, rc = -ENODEV;
|
||||||
@ -10436,6 +10431,36 @@ static const struct {
|
|||||||
#define IS_E1HMF_MODE_STAT(bp) \
|
#define IS_E1HMF_MODE_STAT(bp) \
|
||||||
(IS_E1HMF(bp) && !(bp->msglevel & BNX2X_MSG_STATS))
|
(IS_E1HMF(bp) && !(bp->msglevel & BNX2X_MSG_STATS))
|
||||||
|
|
||||||
|
static int bnx2x_get_sset_count(struct net_device *dev, int stringset)
|
||||||
|
{
|
||||||
|
struct bnx2x *bp = netdev_priv(dev);
|
||||||
|
int i, num_stats;
|
||||||
|
|
||||||
|
switch(stringset) {
|
||||||
|
case ETH_SS_STATS:
|
||||||
|
if (is_multi(bp)) {
|
||||||
|
num_stats = BNX2X_NUM_Q_STATS * bp->num_rx_queues;
|
||||||
|
if (!IS_E1HMF_MODE_STAT(bp))
|
||||||
|
num_stats += BNX2X_NUM_STATS;
|
||||||
|
} else {
|
||||||
|
if (IS_E1HMF_MODE_STAT(bp)) {
|
||||||
|
num_stats = 0;
|
||||||
|
for (i = 0; i < BNX2X_NUM_STATS; i++)
|
||||||
|
if (IS_FUNC_STAT(i))
|
||||||
|
num_stats++;
|
||||||
|
} else
|
||||||
|
num_stats = BNX2X_NUM_STATS;
|
||||||
|
}
|
||||||
|
return num_stats;
|
||||||
|
|
||||||
|
case ETH_SS_TEST:
|
||||||
|
return BNX2X_NUM_TESTS;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void bnx2x_get_strings(struct net_device *dev, u32 stringset, u8 *buf)
|
static void bnx2x_get_strings(struct net_device *dev, u32 stringset, u8 *buf)
|
||||||
{
|
{
|
||||||
struct bnx2x *bp = netdev_priv(dev);
|
struct bnx2x *bp = netdev_priv(dev);
|
||||||
@ -10473,28 +10498,6 @@ static void bnx2x_get_strings(struct net_device *dev, u32 stringset, u8 *buf)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bnx2x_get_stats_count(struct net_device *dev)
|
|
||||||
{
|
|
||||||
struct bnx2x *bp = netdev_priv(dev);
|
|
||||||
int i, num_stats;
|
|
||||||
|
|
||||||
if (is_multi(bp)) {
|
|
||||||
num_stats = BNX2X_NUM_Q_STATS * bp->num_rx_queues;
|
|
||||||
if (!IS_E1HMF_MODE_STAT(bp))
|
|
||||||
num_stats += BNX2X_NUM_STATS;
|
|
||||||
} else {
|
|
||||||
if (IS_E1HMF_MODE_STAT(bp)) {
|
|
||||||
num_stats = 0;
|
|
||||||
for (i = 0; i < BNX2X_NUM_STATS; i++)
|
|
||||||
if (IS_FUNC_STAT(i))
|
|
||||||
num_stats++;
|
|
||||||
} else
|
|
||||||
num_stats = BNX2X_NUM_STATS;
|
|
||||||
}
|
|
||||||
|
|
||||||
return num_stats;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void bnx2x_get_ethtool_stats(struct net_device *dev,
|
static void bnx2x_get_ethtool_stats(struct net_device *dev,
|
||||||
struct ethtool_stats *stats, u64 *buf)
|
struct ethtool_stats *stats, u64 *buf)
|
||||||
{
|
{
|
||||||
@ -10637,11 +10640,10 @@ static const struct ethtool_ops bnx2x_ethtool_ops = {
|
|||||||
.set_sg = ethtool_op_set_sg,
|
.set_sg = ethtool_op_set_sg,
|
||||||
.get_tso = ethtool_op_get_tso,
|
.get_tso = ethtool_op_get_tso,
|
||||||
.set_tso = bnx2x_set_tso,
|
.set_tso = bnx2x_set_tso,
|
||||||
.self_test_count = bnx2x_self_test_count,
|
|
||||||
.self_test = bnx2x_self_test,
|
.self_test = bnx2x_self_test,
|
||||||
|
.get_sset_count = bnx2x_get_sset_count,
|
||||||
.get_strings = bnx2x_get_strings,
|
.get_strings = bnx2x_get_strings,
|
||||||
.phys_id = bnx2x_phys_id,
|
.phys_id = bnx2x_phys_id,
|
||||||
.get_stats_count = bnx2x_get_stats_count,
|
|
||||||
.get_ethtool_stats = bnx2x_get_ethtool_stats,
|
.get_ethtool_stats = bnx2x_get_ethtool_stats,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2145,9 +2145,12 @@ static int emac_ethtool_nway_reset(struct net_device *ndev)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int emac_ethtool_get_stats_count(struct net_device *ndev)
|
static int emac_ethtool_get_sset_count(struct net_device *ndev, int stringset)
|
||||||
{
|
{
|
||||||
|
if (stringset == ETH_SS_STATS)
|
||||||
return EMAC_ETHTOOL_STATS_COUNT;
|
return EMAC_ETHTOOL_STATS_COUNT;
|
||||||
|
else
|
||||||
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void emac_ethtool_get_strings(struct net_device *ndev, u32 stringset,
|
static void emac_ethtool_get_strings(struct net_device *ndev, u32 stringset,
|
||||||
@ -2178,7 +2181,6 @@ static void emac_ethtool_get_drvinfo(struct net_device *ndev,
|
|||||||
info->fw_version[0] = '\0';
|
info->fw_version[0] = '\0';
|
||||||
sprintf(info->bus_info, "PPC 4xx EMAC-%d %s",
|
sprintf(info->bus_info, "PPC 4xx EMAC-%d %s",
|
||||||
dev->cell_index, dev->ofdev->node->full_name);
|
dev->cell_index, dev->ofdev->node->full_name);
|
||||||
info->n_stats = emac_ethtool_get_stats_count(ndev);
|
|
||||||
info->regdump_len = emac_ethtool_get_regs_len(ndev);
|
info->regdump_len = emac_ethtool_get_regs_len(ndev);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2198,7 +2200,7 @@ static const struct ethtool_ops emac_ethtool_ops = {
|
|||||||
.get_rx_csum = emac_ethtool_get_rx_csum,
|
.get_rx_csum = emac_ethtool_get_rx_csum,
|
||||||
|
|
||||||
.get_strings = emac_ethtool_get_strings,
|
.get_strings = emac_ethtool_get_strings,
|
||||||
.get_stats_count = emac_ethtool_get_stats_count,
|
.get_sset_count = emac_ethtool_get_sset_count,
|
||||||
.get_ethtool_stats = emac_ethtool_get_ethtool_stats,
|
.get_ethtool_stats = emac_ethtool_get_ethtool_stats,
|
||||||
|
|
||||||
.get_link = ethtool_op_get_link,
|
.get_link = ethtool_op_get_link,
|
||||||
|
@ -363,16 +363,6 @@ static int igbvf_link_test(struct igbvf_adapter *adapter, u64 *data)
|
|||||||
return *data;
|
return *data;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int igbvf_get_self_test_count(struct net_device *netdev)
|
|
||||||
{
|
|
||||||
return IGBVF_TEST_LEN;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int igbvf_get_stats_count(struct net_device *netdev)
|
|
||||||
{
|
|
||||||
return IGBVF_GLOBAL_STATS_LEN;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void igbvf_diag_test(struct net_device *netdev,
|
static void igbvf_diag_test(struct net_device *netdev,
|
||||||
struct ethtool_test *eth_test, u64 *data)
|
struct ethtool_test *eth_test, u64 *data)
|
||||||
{
|
{
|
||||||
@ -480,6 +470,18 @@ static void igbvf_get_ethtool_stats(struct net_device *netdev,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int igbvf_get_sset_count(struct net_device *dev, int stringset)
|
||||||
|
{
|
||||||
|
switch(stringset) {
|
||||||
|
case ETH_SS_TEST:
|
||||||
|
return IGBVF_TEST_LEN;
|
||||||
|
case ETH_SS_STATS:
|
||||||
|
return IGBVF_GLOBAL_STATS_LEN;
|
||||||
|
default:
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void igbvf_get_strings(struct net_device *netdev, u32 stringset,
|
static void igbvf_get_strings(struct net_device *netdev, u32 stringset,
|
||||||
u8 *data)
|
u8 *data)
|
||||||
{
|
{
|
||||||
@ -528,11 +530,10 @@ static const struct ethtool_ops igbvf_ethtool_ops = {
|
|||||||
.get_tso = ethtool_op_get_tso,
|
.get_tso = ethtool_op_get_tso,
|
||||||
.set_tso = igbvf_set_tso,
|
.set_tso = igbvf_set_tso,
|
||||||
.self_test = igbvf_diag_test,
|
.self_test = igbvf_diag_test,
|
||||||
|
.get_sset_count = igbvf_get_sset_count,
|
||||||
.get_strings = igbvf_get_strings,
|
.get_strings = igbvf_get_strings,
|
||||||
.phys_id = igbvf_phys_id,
|
.phys_id = igbvf_phys_id,
|
||||||
.get_ethtool_stats = igbvf_get_ethtool_stats,
|
.get_ethtool_stats = igbvf_get_ethtool_stats,
|
||||||
.self_test_count = igbvf_get_self_test_count,
|
|
||||||
.get_stats_count = igbvf_get_stats_count,
|
|
||||||
.get_coalesce = igbvf_get_coalesce,
|
.get_coalesce = igbvf_get_coalesce,
|
||||||
.set_coalesce = igbvf_set_coalesce,
|
.set_coalesce = igbvf_set_coalesce,
|
||||||
};
|
};
|
||||||
|
@ -7855,10 +7855,13 @@ static void niu_get_strings(struct net_device *dev, u32 stringset, u8 *data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int niu_get_stats_count(struct net_device *dev)
|
static int niu_get_sset_count(struct net_device *dev, int stringset)
|
||||||
{
|
{
|
||||||
struct niu *np = netdev_priv(dev);
|
struct niu *np = netdev_priv(dev);
|
||||||
|
|
||||||
|
if (stringset != ETH_SS_STATS)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
return ((np->flags & NIU_FLAGS_XMAC ?
|
return ((np->flags & NIU_FLAGS_XMAC ?
|
||||||
NUM_XMAC_STAT_KEYS :
|
NUM_XMAC_STAT_KEYS :
|
||||||
NUM_BMAC_STAT_KEYS) +
|
NUM_BMAC_STAT_KEYS) +
|
||||||
@ -7978,7 +7981,7 @@ static const struct ethtool_ops niu_ethtool_ops = {
|
|||||||
.get_settings = niu_get_settings,
|
.get_settings = niu_get_settings,
|
||||||
.set_settings = niu_set_settings,
|
.set_settings = niu_set_settings,
|
||||||
.get_strings = niu_get_strings,
|
.get_strings = niu_get_strings,
|
||||||
.get_stats_count = niu_get_stats_count,
|
.get_sset_count = niu_get_sset_count,
|
||||||
.get_ethtool_stats = niu_get_ethtool_stats,
|
.get_ethtool_stats = niu_get_ethtool_stats,
|
||||||
.phys_id = niu_phys_id,
|
.phys_id = niu_phys_id,
|
||||||
.get_rxnfc = niu_get_nfc,
|
.get_rxnfc = niu_get_nfc,
|
||||||
|
Loading…
Reference in New Issue
Block a user