Commit 7a4ea5da authored by Rosen Penev's avatar Rosen Penev Committed by Jakub Kicinski
Browse files

net: hisilicon: hns: use ethtool string helpers



The latter is the preferred way to copy ethtool strings.

Avoids manually incrementing the pointer. Cleans up the code quite well.

Signed-off-by: default avatarRosen Penev <rosenp@gmail.com>
Reviewed-by: default avatarJijie Shao <shaojijie@huawei.com>
Link: https://patch.msgid.link/20241101220023.290926-1-rosenp@gmail.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 7d1c2d51
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -512,7 +512,7 @@ struct hnae_ae_ops {
			     struct net_device_stats *net_stats);
	void (*get_stats)(struct hnae_handle *handle, u64 *data);
	void (*get_strings)(struct hnae_handle *handle,
			    u32 stringset, u8 *data);
			    u32 stringset, u8 **data);
	int (*get_sset_count)(struct hnae_handle *handle, int stringset);
	void (*update_led_status)(struct hnae_handle *handle);
	int (*set_led_id)(struct hnae_handle *handle,
+7 −13
Original line number Diff line number Diff line
@@ -730,15 +730,14 @@ static void hns_ae_get_stats(struct hnae_handle *handle, u64 *data)
		hns_dsaf_get_stats(vf_cb->dsaf_dev, p, vf_cb->port_index);
}

static void hns_ae_get_strings(struct hnae_handle *handle,
			       u32 stringset, u8 *data)
static void hns_ae_get_strings(struct hnae_handle *handle, u32 stringset,
			       u8 **data)
{
	int port;
	int idx;
	struct hns_mac_cb *mac_cb;
	struct hns_ppe_cb *ppe_cb;
	struct dsaf_device *dsaf_dev = hns_ae_get_dsaf_dev(handle->dev);
	u8 *p = data;
	struct	hnae_vf_cb *vf_cb;

	assert(handle);
@@ -748,19 +747,14 @@ static void hns_ae_get_strings(struct hnae_handle *handle,
	mac_cb = hns_get_mac_cb(handle);
	ppe_cb = hns_get_ppe_cb(handle);

	for (idx = 0; idx < handle->q_num; idx++) {
		hns_rcb_get_strings(stringset, p, idx);
		p += ETH_GSTRING_LEN * hns_rcb_get_ring_sset_count(stringset);
	}

	hns_ppe_get_strings(ppe_cb, stringset, p);
	p += ETH_GSTRING_LEN * hns_ppe_get_sset_count(stringset);
	for (idx = 0; idx < handle->q_num; idx++)
		hns_rcb_get_strings(stringset, data, idx);

	hns_mac_get_strings(mac_cb, stringset, p);
	p += ETH_GSTRING_LEN * hns_mac_get_sset_count(mac_cb, stringset);
	hns_ppe_get_strings(ppe_cb, stringset, data);
	hns_mac_get_strings(mac_cb, stringset, data);

	if (mac_cb->mac_type == HNAE_PORT_SERVICE)
		hns_dsaf_get_strings(stringset, p, port, dsaf_dev);
		hns_dsaf_get_strings(stringset, data, port, dsaf_dev);
}

static int hns_ae_get_sset_count(struct hnae_handle *handle, int stringset)
+2 −3
Original line number Diff line number Diff line
@@ -669,16 +669,15 @@ static void hns_gmac_get_stats(void *mac_drv, u64 *data)
	}
}

static void hns_gmac_get_strings(u32 stringset, u8 *data)
static void hns_gmac_get_strings(u32 stringset, u8 **data)
{
	u8 *buff = data;
	u32 i;

	if (stringset != ETH_SS_STATS)
		return;

	for (i = 0; i < ARRAY_SIZE(g_gmac_stats_string); i++)
		ethtool_puts(&buff, g_gmac_stats_string[i].desc);
		ethtool_puts(data, g_gmac_stats_string[i].desc);
}

static int hns_gmac_get_sset_count(int stringset)
+1 −2
Original line number Diff line number Diff line
@@ -1190,8 +1190,7 @@ void hns_mac_get_stats(struct hns_mac_cb *mac_cb, u64 *data)
	mac_ctrl_drv->get_ethtool_stats(mac_ctrl_drv, data);
}

void hns_mac_get_strings(struct hns_mac_cb *mac_cb,
			 int stringset, u8 *data)
void hns_mac_get_strings(struct hns_mac_cb *mac_cb, int stringset, u8 **data)
{
	struct mac_driver *mac_ctrl_drv = hns_mac_get_drv(mac_cb);

+2 −2
Original line number Diff line number Diff line
@@ -378,7 +378,7 @@ struct mac_driver {
	void (*get_regs)(void *mac_drv, void *data);
	int (*get_regs_count)(void);
	/* get strings name for ethtool statistic */
	void (*get_strings)(u32 stringset, u8 *data);
	void (*get_strings)(u32 stringset, u8 **data);
	/* get the number of strings*/
	int (*get_sset_count)(int stringset);

@@ -445,7 +445,7 @@ int hns_mac_config_mac_loopback(struct hns_mac_cb *mac_cb,
				enum hnae_loop loop, int en);
void hns_mac_update_stats(struct hns_mac_cb *mac_cb);
void hns_mac_get_stats(struct hns_mac_cb *mac_cb, u64 *data);
void hns_mac_get_strings(struct hns_mac_cb *mac_cb, int stringset, u8 *data);
void hns_mac_get_strings(struct hns_mac_cb *mac_cb, int stringset, u8 **data);
int hns_mac_get_sset_count(struct hns_mac_cb *mac_cb, int stringset);
void hns_mac_get_regs(struct hns_mac_cb *mac_cb, void *data);
int hns_mac_get_regs_count(struct hns_mac_cb *mac_cb);
Loading