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

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

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: default avatarBen Hutchings <bhutchings@solarflare.com>
Acked-by: default avatarEilon Greenstein <eilong@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1ddee09f
Loading
Loading
Loading
Loading
+7 −5
Original line number Original line Diff line number Diff line
@@ -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,
+8 −3
Original line number Original line Diff line number Diff line
@@ -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,
};
};
+31 −29
Original line number Original line Diff line number Diff line
@@ -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,
};
};


+6 −4
Original line number Original line Diff line number Diff line
@@ -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,
+13 −12
Original line number Original line Diff line number Diff line
@@ -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,
};
};
Loading