On 15/08/2025 16:27, Vadim Fedorenko wrote:
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index de5bd76a400ca..6c0dc6ae080a8 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -492,7 +492,25 @@ struct ethtool_pause_stats {
  };
#define ETHTOOL_MAX_LANES 8
+#define ETHTOOL_FEC_HIST_MAX   18

Could you clarify why it is set to 18?
AFAIU IEEE 802.3ck/df define 16 bins.

diff --git a/net/ethtool/fec.c b/net/ethtool/fec.c
index e7d3f2c352a34..9313bd17544fd 100644
--- a/net/ethtool/fec.c
+++ b/net/ethtool/fec.c
@@ -17,6 +17,7 @@ struct fec_reply_data {
                u64 stats[1 + ETHTOOL_MAX_LANES];
                u8 cnt;
        } corr, uncorr, corr_bits;
+       struct ethtool_fec_hist fec_stat_hist;
  };
#define FEC_REPDATA(__reply_base) \
@@ -113,7 +114,11 @@ static int fec_prepare_data(const struct ethnl_req_info 
*req_base,
                struct ethtool_fec_stats stats;
ethtool_stats_init((u64 *)&stats, sizeof(stats) / 8);
-               dev->ethtool_ops->get_fec_stats(dev, &stats);
+               ethtool_stats_init((u64 *)data->fec_stat_hist.values,
+                                  ETHTOOL_MAX_LANES *
this should be ETHTOOL_FEC_HIST_MAX since we’re initializing the histogram bins array.

Thanks!
Carolina


Reply via email to