> -----Original Message-----
> From: Vadim Fedorenko <[email protected]>
> Sent: Wednesday, September 24, 2025 2:41 PM
> To: Jakub Kicinski <[email protected]>; Andrew Lunn <[email protected]>;
> Michael Chan <[email protected]>; Pavan Chebbi
> <[email protected]>; Tariq Toukan <[email protected]>; Gal
> Pressman <[email protected]>; [email protected]; Donald
> Hunter <[email protected]>; Carolina Jubran
> <[email protected]>; Loktionov, Aleksandr
> <[email protected]>; Vadim Fedorenko
> <[email protected]>
> Cc: Paolo Abeni <[email protected]>; Simon Horman <[email protected]>;
> [email protected]; Dragos Tatulea <[email protected]>; Yael
> Chemla <[email protected]>
> Subject: [PATCH net-next v6 2/5] net/mlx5e: Don't query FEC statistics
> when FEC is disabled
>
> From: Carolina Jubran <[email protected]>
>
> Update mlx5e_stats_fec_get() to check the active FEC mode and skip
> statistics collection when FEC is disabled.
>
> Signed-off-by: Carolina Jubran <[email protected]>
> Reviewed-by: Dragos Tatulea <[email protected]>
> Reviewed-by: Yael Chemla <[email protected]>
> Reviewed-by: Aleksandr Loktionov <[email protected]>
> Signed-off-by: Vadim Fedorenko <[email protected]>
> ---
> drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
> b/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
> index 87536f158d07..aae0022e8736 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
> @@ -1446,16 +1446,13 @@ static void fec_set_rs_stats(struct
> ethtool_fec_stats *fec_stats, u32 *ppcnt) }
>
> static void fec_set_block_stats(struct mlx5e_priv *priv,
> + int mode,
> struct ethtool_fec_stats *fec_stats) {
> struct mlx5_core_dev *mdev = priv->mdev;
> u32 out[MLX5_ST_SZ_DW(ppcnt_reg)] = {};
> u32 in[MLX5_ST_SZ_DW(ppcnt_reg)] = {};
> int sz = MLX5_ST_SZ_BYTES(ppcnt_reg);
> - int mode = fec_active_mode(mdev);
> -
> - if (mode == MLX5E_FEC_NOFEC)
> - return;
>
> MLX5_SET(ppcnt_reg, in, local_port, 1);
> MLX5_SET(ppcnt_reg, in, grp,
> MLX5_PHYSICAL_LAYER_COUNTERS_GROUP);
> @@ -1496,11 +1493,14 @@ static void
> fec_set_corrected_bits_total(struct mlx5e_priv *priv, void
> mlx5e_stats_fec_get(struct mlx5e_priv *priv,
> struct ethtool_fec_stats *fec_stats) {
> - if (!MLX5_CAP_PCAM_FEATURE(priv->mdev,
> ppcnt_statistical_group))
> + int mode = fec_active_mode(priv->mdev);
> +
> + if (mode == MLX5E_FEC_NOFEC ||
> + !MLX5_CAP_PCAM_FEATURE(priv->mdev,
> ppcnt_statistical_group))
> return;
>
> fec_set_corrected_bits_total(priv, fec_stats);
> - fec_set_block_stats(priv, fec_stats);
> + fec_set_block_stats(priv, mode, fec_stats);
> }
>
> #define PPORT_ETH_EXT_OFF(c) \
> --
> 2.47.3
Reviewed-by: Aleksandr Loktionov <[email protected]>