On Wed, Jan 27, 2021 at 4:03 AM Hariprasad Kelam <hke...@marvell.com> wrote:
>
> From: Christina Jacob <cja...@marvell.com>
>
> Add ethtool support to configure fec modes baser/rs and
> support to fecth FEC stats from CGX as well PHY.
>
> Configure fec mode
>         - ethtool --set-fec eth0 encoding rs/baser/off/auto
> Query fec mode
>         - ethtool --show-fec eth0
>
> Signed-off-by: Christina Jacob <cja...@marvell.com>
> Signed-off-by: Sunil Goutham <sgout...@marvell.com>
> Signed-off-by: Hariprasad Kelam <hke...@marvell.com>
> ---
>  .../ethernet/marvell/octeontx2/nic/otx2_common.c   |  23 +++
>  .../ethernet/marvell/octeontx2/nic/otx2_common.h   |   6 +
>  .../ethernet/marvell/octeontx2/nic/otx2_ethtool.c  | 181 
> ++++++++++++++++++++-
>  .../net/ethernet/marvell/octeontx2/nic/otx2_pf.c   |   3 +
>  4 files changed, 211 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c 
> b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
> index bdfa2e2..f7e5450 100644
> --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
> +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
> @@ -60,6 +60,22 @@ void otx2_update_lmac_stats(struct otx2_nic *pfvf)
>         mutex_unlock(&pfvf->mbox.lock);
>  }
>
> +void otx2_update_lmac_fec_stats(struct otx2_nic *pfvf)
> +{
> +       struct msg_req *req;
> +
> +       if (!netif_running(pfvf->netdev))
> +               return;
> +       mutex_lock(&pfvf->mbox.lock);
> +       req = otx2_mbox_alloc_msg_cgx_fec_stats(&pfvf->mbox);
> +       if (!req) {
> +               mutex_unlock(&pfvf->mbox.lock);
> +               return;
> +       }
> +       otx2_sync_mbox_msg(&pfvf->mbox);

Perhaps simpler to have a single exit from the critical section:

  if (req)
    otx2_update_lmac_fec_stats

> +       mutex_unlock(&pfvf->mbox.lock);
> +}

Also, should this function return an error on failure? The caller
returns errors in other cases.

Reply via email to