> -----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]>

Reply via email to