[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