From: Eric Joyner <eric.joyner@amd.com>
To: <netdev@vger.kernel.org>
Cc: Brett Creeley <brett.creeley@amd.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
"Jakub Kicinski" <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
Vadim Fedorenko <vadim.fedorenko@linux.dev>,
"Nikhil P. Rao" <nikhil.rao@amd.com>,
Eric Joyner <eric.joyner@amd.com>,
Eric Dumazet <edumazet@kernel.org>
Subject: [PATCH net-next v3 4/5] ionic: report the operational FEC mode from ethtool --show-fec
Date: Wed, 4 Nov 2026 13:19:45 -0800 [thread overview]
Message-ID: <20261104-ionic-get-fec-stats-v3-4-b261fd53d0a7@amd.com> (raw)
In-Reply-To: <20261104-ionic-get-fec-stats-v3-0-b261fd53d0a7@amd.com>
From: "Nikhil P. Rao" <nikhil.rao@amd.com>
ionic_get_fecparam() fills fec->active_fec from config.fec_type, the mode
the host requested, which on an autoneg link is whatever was last
programmed while the link negotiates something else. Read it from
status.fec_type, where firmware reports the operational mode.
status.fec_type was carved out of the reserved area by commit
c4e7a75a096c ("ionic: updates to ionic FW api description"), and
firmware older than that leaves the byte reserved, where zero reads as
IONIC_PORT_FEC_TYPE_NONE, so --show-fec reports FEC off on a link that
may be running it.
Poisoning the byte before PORT_INIT, the way the driver marks unwritten
extra_stats counters with IONIC_STAT_INVALID, does not work here:
firmware builds the whole port status block and writes it over the DMA
region, so the marker is gone whether or not that firmware knows the
field. Accept the wrong answer on firmware that old.
Signed-off-by: Nikhil P. Rao <nikhil.rao@amd.com>
Signed-off-by: Eric Joyner <eric.joyner@amd.com>
---
drivers/net/ethernet/pensando/ionic/ionic_ethtool.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c b/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
index bf7c70438a8c..2e067481bb15 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
@@ -442,8 +442,10 @@ static int ionic_get_fecparam(struct net_device *netdev,
lif = netdev_priv(netdev);
port_info = lif->ionic->idev.port_info;
- fec->active_fec = ionic_fec_type_to_ethtool(port_info->config.fec_type);
- fec->fec = ionic_fec_type_to_ethtool(port_info->config.fec_type);
+ fec->active_fec =
+ ionic_fec_type_to_ethtool(READ_ONCE(port_info->status.fec_type));
+ fec->fec =
+ ionic_fec_type_to_ethtool(READ_ONCE(port_info->config.fec_type));
return 0;
}
--
2.53.0
next prev parent reply other threads:[~2026-11-04 21:20 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-04 21:19 [PATCH net-next v3 0/5] ionic: FEC reporting fixes and .get_fec_stats handler Eric Joyner
2026-11-04 21:19 ` [PATCH net-next v3 1/5] ionic: write the extra_stats invalid markers one counter at a time Eric Joyner
2026-11-04 21:19 ` [PATCH net-next v3 2/5] ionic: report the configured FEC mode in ethtool_fecparam.fec Eric Joyner
2026-11-10 21:26 ` Jakub Kicinski
2026-11-04 21:19 ` [PATCH net-next v3 3/5] ionic: map the FEC type through a helper in ionic_get_fecparam() Eric Joyner
2026-11-04 21:19 ` Eric Joyner [this message]
2026-11-10 21:26 ` [PATCH net-next v3 4/5] ionic: report the operational FEC mode from ethtool --show-fec Jakub Kicinski
2026-11-04 21:19 ` [PATCH net-next v3 5/5] ionic: Add .get_fec_stats ethtool handler Eric Joyner
2026-11-09 19:35 ` [PATCH net-next v3 0/5] ionic: FEC reporting fixes and .get_fec_stats handler Eric Joyner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261104-ionic-get-fec-stats-v3-4-b261fd53d0a7@amd.com \
--to=eric.joyner@amd.com \
--cc=andrew+netdev@lunn.ch \
--cc=brett.creeley@amd.com \
--cc=davem@davemloft.net \
--cc=edumazet@kernel.org \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nikhil.rao@amd.com \
--cc=pabeni@redhat.com \
--cc=vadim.fedorenko@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox