[PATCH] net/bnxt: fix to set Rx next cons in mbuf alloc fail case

Ajit Khaparde ajit.khaparde at broadcom.com
Wed Nov 17 05:05:09 CET 2021


On Tue, Nov 16, 2021 at 7:18 PM Somnath Kotur
<somnath.kotur at broadcom.com> wrote:
>
> The driver internal variable to track the next consumer index on
> the Rx ring was not being set if there was an mbuf allocation
> failure. In that scenario, eventually it would fall out of sync
> with the actual consumer index and raise a false alarm on Thor
> needlessly causing a segmentation fault with testpmd
>
> Fixes: 03c8f2fe111c ("net/bnxt: detect bad opaque in Rx completion")
> Cc: stable at dpdk.org
>
> Signed-off-by: Somnath Kotur <somnath.kotur at broadcom.com>
> Signed-off-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
> Reviewed-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
> Reviewed-by: Kalesh Anakkur Purayil <kalesh-anakkur.purayil at broadcom.com>

Patch applied to dpdk-next-net-brcm. Thanks

> ---
>  drivers/net/bnxt/bnxt_rxr.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c
> index 8bc8ddc353..e461500ceb 100644
> --- a/drivers/net/bnxt/bnxt_rxr.c
> +++ b/drivers/net/bnxt/bnxt_rxr.c
> @@ -1008,6 +1008,7 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
>                 goto rx;
>         }
>         rxr->rx_raw_prod = raw_prod;
> +rx:
>         rxr->rx_next_cons = RING_IDX(rxr->rx_ring_struct, RING_NEXT(cons));
>
>         if (BNXT_TRUFLOW_EN(bp) && (BNXT_VF_IS_TRUSTED(bp) || BNXT_PF(bp)) &&
> @@ -1026,7 +1027,6 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
>          * All MBUFs are allocated with the same size under DPDK,
>          * no optimization for rx_copy_thresh
>          */
> -rx:
>         *rx_pkt = mbuf;
>
>  next_rx:
> --
> 2.28.0.497.g54e85e7
>


More information about the stable mailing list