Messages in this thread |  | | Date | Sun, 4 Dec 2022 14:00:48 +0200 | From | Leon Romanovsky <> | Subject | Re: [net-next PATCH v3 3/4] octeontx2-pf: ethtool: Implement get_fec_stats |
| |
On Thu, Dec 01, 2022 at 11:30:39PM +0530, Hariprasad Kelam wrote: > This patch registers a callback for get_fec_stats such that > FEC stats can be queried from the below command > > "ethtool -I --show-fec eth0" > > Signed-off-by: Hariprasad Kelam <hkelam@marvell.com> > Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com> > --- > v3 * Dont remove existing FEC stats support over > ethtool statistics (ethtool -S) > > .../marvell/octeontx2/nic/otx2_ethtool.c | 40 +++++++++++++++++++ > 1 file changed, 40 insertions(+) > > diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c > index 0eb74e8c553d..85f46e15ac03 100644 > --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c > +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c > @@ -1268,6 +1268,45 @@ static int otx2_set_link_ksettings(struct net_device *netdev, > return err; > } > > +static void otx2_get_fec_stats(struct net_device *netdev, > + struct ethtool_fec_stats *fec_stats) > +{ > + struct otx2_nic *pfvf = netdev_priv(netdev); > + struct cgx_fw_data *rsp; > + > + otx2_update_lmac_fec_stats(pfvf); > + > + rsp = otx2_get_fwdata(pfvf); > + if (!IS_ERR(rsp) && rsp->fwdata.phy.misc.has_fec_stats &&
<...>
> + } else {
I see that you copied this pattern of call to otx2_get_fwdata() and check for error from another place. However, that function returns an error while executing call to HW. I don't know if it is correct thing to continue as nothing happened.
> + /* Report MAC FEC stats */ > + fec_stats->corrected_blocks.total = > + pfvf->hw.cgx_fec_corr_blks; > + fec_stats->uncorrectable_blocks.total = > + pfvf->hw.cgx_fec_uncorr_blks;
Please don't do vertical alignment of new code. Please use clang formatter to fix it.
> + } > +} > + > static const struct ethtool_ops otx2_ethtool_ops = { > .supported_coalesce_params = ETHTOOL_COALESCE_USECS | > ETHTOOL_COALESCE_MAX_FRAMES | > @@ -1298,6 +1337,7 @@ static const struct ethtool_ops otx2_ethtool_ops = { > .get_pauseparam = otx2_get_pauseparam, > .set_pauseparam = otx2_set_pauseparam, > .get_ts_info = otx2_get_ts_info, > + .get_fec_stats = otx2_get_fec_stats, > .get_fecparam = otx2_get_fecparam, > .set_fecparam = otx2_set_fecparam, > .get_link_ksettings = otx2_get_link_ksettings, > -- > 2.17.1
|  |