Commit 89b34322 authored by Gal Pressman's avatar Gal Pressman Committed by Jakub Kicinski

net/mlx5e: Use ethtool_sprintf/puts() to fill stats strings

Use ethtool_sprintf/puts() helper functions which handle the common
pattern of printing a string into the ethtool strings interface and
incrementing the string pointer by ETH_GSTRING_LEN.

Change the fill_strings callback to accept a **data pointer, and remove
the index and return value.
Signed-off-by: default avatarGal Pressman <gal@nvidia.com>
Reviewed-by: default avatarTariq Toukan <tariqt@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
Signed-off-by: default avatarTariq Toukan <tariqt@nvidia.com>
Reviewed-by: default avatarSimon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/20240402133043.56322-4-tariqt@nvidia.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 9ac9299d
...@@ -78,13 +78,10 @@ static MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS(ipsec_hw) ...@@ -78,13 +78,10 @@ static MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS(ipsec_hw)
unsigned int i; unsigned int i;
if (!priv->ipsec) if (!priv->ipsec)
return idx; return;
for (i = 0; i < NUM_IPSEC_HW_COUNTERS; i++) for (i = 0; i < NUM_IPSEC_HW_COUNTERS; i++)
strcpy(data + (idx++) * ETH_GSTRING_LEN, ethtool_puts(data, mlx5e_ipsec_hw_stats_desc[i].format);
mlx5e_ipsec_hw_stats_desc[i].format);
return idx;
} }
static MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS(ipsec_hw) static MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS(ipsec_hw)
...@@ -115,9 +112,7 @@ static MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS(ipsec_sw) ...@@ -115,9 +112,7 @@ static MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS(ipsec_sw)
if (priv->ipsec) if (priv->ipsec)
for (i = 0; i < NUM_IPSEC_SW_COUNTERS; i++) for (i = 0; i < NUM_IPSEC_SW_COUNTERS; i++)
strcpy(data + (idx++) * ETH_GSTRING_LEN, ethtool_puts(data, mlx5e_ipsec_sw_stats_desc[i].format);
mlx5e_ipsec_sw_stats_desc[i].format);
return idx;
} }
static MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS(ipsec_sw) static MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS(ipsec_sw)
......
...@@ -95,7 +95,7 @@ int mlx5e_ktls_init(struct mlx5e_priv *priv); ...@@ -95,7 +95,7 @@ int mlx5e_ktls_init(struct mlx5e_priv *priv);
void mlx5e_ktls_cleanup(struct mlx5e_priv *priv); void mlx5e_ktls_cleanup(struct mlx5e_priv *priv);
int mlx5e_ktls_get_count(struct mlx5e_priv *priv); int mlx5e_ktls_get_count(struct mlx5e_priv *priv);
int mlx5e_ktls_get_strings(struct mlx5e_priv *priv, uint8_t *data); void mlx5e_ktls_get_strings(struct mlx5e_priv *priv, uint8_t **data);
int mlx5e_ktls_get_stats(struct mlx5e_priv *priv, u64 *data); int mlx5e_ktls_get_stats(struct mlx5e_priv *priv, u64 *data);
#else #else
...@@ -144,10 +144,7 @@ static inline bool mlx5e_is_ktls_rx(struct mlx5_core_dev *mdev) ...@@ -144,10 +144,7 @@ static inline bool mlx5e_is_ktls_rx(struct mlx5_core_dev *mdev)
static inline int mlx5e_ktls_init(struct mlx5e_priv *priv) { return 0; } static inline int mlx5e_ktls_init(struct mlx5e_priv *priv) { return 0; }
static inline void mlx5e_ktls_cleanup(struct mlx5e_priv *priv) { } static inline void mlx5e_ktls_cleanup(struct mlx5e_priv *priv) { }
static inline int mlx5e_ktls_get_count(struct mlx5e_priv *priv) { return 0; } static inline int mlx5e_ktls_get_count(struct mlx5e_priv *priv) { return 0; }
static inline int mlx5e_ktls_get_strings(struct mlx5e_priv *priv, uint8_t *data) static inline void mlx5e_ktls_get_strings(struct mlx5e_priv *priv, uint8_t **data) { }
{
return 0;
}
static inline int mlx5e_ktls_get_stats(struct mlx5e_priv *priv, u64 *data) static inline int mlx5e_ktls_get_stats(struct mlx5e_priv *priv, u64 *data)
{ {
......
...@@ -58,20 +58,17 @@ int mlx5e_ktls_get_count(struct mlx5e_priv *priv) ...@@ -58,20 +58,17 @@ int mlx5e_ktls_get_count(struct mlx5e_priv *priv)
return ARRAY_SIZE(mlx5e_ktls_sw_stats_desc); return ARRAY_SIZE(mlx5e_ktls_sw_stats_desc);
} }
int mlx5e_ktls_get_strings(struct mlx5e_priv *priv, uint8_t *data) void mlx5e_ktls_get_strings(struct mlx5e_priv *priv, uint8_t **data)
{ {
unsigned int i, n, idx = 0; unsigned int i, n;
if (!priv->tls) if (!priv->tls)
return 0; return;
n = mlx5e_ktls_get_count(priv); n = mlx5e_ktls_get_count(priv);
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
strcpy(data + (idx++) * ETH_GSTRING_LEN, ethtool_puts(data, mlx5e_ktls_sw_stats_desc[i].format);
mlx5e_ktls_sw_stats_desc[i].format);
return n;
} }
int mlx5e_ktls_get_stats(struct mlx5e_priv *priv, u64 *data) int mlx5e_ktls_get_stats(struct mlx5e_priv *priv, u64 *data)
......
...@@ -38,16 +38,13 @@ static MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS(macsec_hw) ...@@ -38,16 +38,13 @@ static MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS(macsec_hw)
unsigned int i; unsigned int i;
if (!priv->macsec) if (!priv->macsec)
return idx; return;
if (!mlx5e_is_macsec_device(priv->mdev)) if (!mlx5e_is_macsec_device(priv->mdev))
return idx; return;
for (i = 0; i < NUM_MACSEC_HW_COUNTERS; i++) for (i = 0; i < NUM_MACSEC_HW_COUNTERS; i++)
strcpy(data + (idx++) * ETH_GSTRING_LEN, ethtool_puts(data, mlx5e_macsec_hw_stats_desc[i].format);
mlx5e_macsec_hw_stats_desc[i].format);
return idx;
} }
static MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS(macsec_hw) static MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS(macsec_hw)
......
...@@ -135,9 +135,7 @@ static MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS(sw_rep) ...@@ -135,9 +135,7 @@ static MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS(sw_rep)
int i; int i;
for (i = 0; i < NUM_VPORT_REP_SW_COUNTERS; i++) for (i = 0; i < NUM_VPORT_REP_SW_COUNTERS; i++)
strcpy(data + (idx++) * ETH_GSTRING_LEN, ethtool_puts(data, sw_rep_stats_desc[i].format);
sw_rep_stats_desc[i].format);
return idx;
} }
static MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS(sw_rep) static MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS(sw_rep)
...@@ -176,11 +174,9 @@ static MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS(vport_rep) ...@@ -176,11 +174,9 @@ static MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS(vport_rep)
int i; int i;
for (i = 0; i < NUM_VPORT_REP_HW_COUNTERS; i++) for (i = 0; i < NUM_VPORT_REP_HW_COUNTERS; i++)
strcpy(data + (idx++) * ETH_GSTRING_LEN, vport_rep_stats_desc[i].format); ethtool_puts(data, vport_rep_stats_desc[i].format);
for (i = 0; i < NUM_VPORT_REP_LOOPBACK_COUNTERS(priv->mdev); i++) for (i = 0; i < NUM_VPORT_REP_LOOPBACK_COUNTERS(priv->mdev); i++)
strcpy(data + (idx++) * ETH_GSTRING_LEN, ethtool_puts(data, vport_rep_loopback_stats_desc[i].format);
vport_rep_loopback_stats_desc[i].format);
return idx;
} }
static MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS(vport_rep) static MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS(vport_rep)
......
...@@ -71,7 +71,7 @@ struct mlx5e_priv; ...@@ -71,7 +71,7 @@ struct mlx5e_priv;
struct mlx5e_stats_grp { struct mlx5e_stats_grp {
u16 update_stats_mask; u16 update_stats_mask;
int (*get_num_stats)(struct mlx5e_priv *priv); int (*get_num_stats)(struct mlx5e_priv *priv);
int (*fill_strings)(struct mlx5e_priv *priv, u8 *data, int idx); void (*fill_strings)(struct mlx5e_priv *priv, u8 **data);
int (*fill_stats)(struct mlx5e_priv *priv, u64 *data, int idx); int (*fill_stats)(struct mlx5e_priv *priv, u64 *data, int idx);
void (*update_stats)(struct mlx5e_priv *priv); void (*update_stats)(struct mlx5e_priv *priv);
}; };
...@@ -87,7 +87,7 @@ typedef const struct mlx5e_stats_grp *const mlx5e_stats_grp_t; ...@@ -87,7 +87,7 @@ typedef const struct mlx5e_stats_grp *const mlx5e_stats_grp_t;
void MLX5E_STATS_GRP_OP(grp, update_stats)(struct mlx5e_priv *priv) void MLX5E_STATS_GRP_OP(grp, update_stats)(struct mlx5e_priv *priv)
#define MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS(grp) \ #define MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS(grp) \
int MLX5E_STATS_GRP_OP(grp, fill_strings)(struct mlx5e_priv *priv, u8 *data, int idx) void MLX5E_STATS_GRP_OP(grp, fill_strings)(struct mlx5e_priv *priv, u8 **data)
#define MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS(grp) \ #define MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS(grp) \
int MLX5E_STATS_GRP_OP(grp, fill_stats)(struct mlx5e_priv *priv, u64 *data, int idx) int MLX5E_STATS_GRP_OP(grp, fill_stats)(struct mlx5e_priv *priv, u64 *data, int idx)
......
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