On Wed, Nov 3, 2021 at 9:10 AM Somnath Kotur <somnath.ko...@broadcom.com> wrote: > > The patch introduced by > commit 657c2a7f1dd4 ("net/bnxt: create aggregation rings when needed") > ended up shortening the return code path from the function thereby > resulting in not executing the line of code at the end of the function > that was resetting the next consumer index to 0. > This would result in an application crash when error recovery or other > port stop/start scenarios were invoked on Thor which is what this > commit 61cd4384fabf ("net/bnxt: fix crash after port stop/start") > was addressing. > Fix it by moving the resetting line of code before the return path > in the case when aggregration rings are not used (default case). > > Fixes: 657c2a7f1dd4 ("net/bnxt: create aggregation rings when needed") > > Signed-off-by: Somnath Kotur <somnath.ko...@broadcom.com> Fixed typo in commit log. Patch applied to dpdk-next-net-brcm.
> --- > drivers/net/bnxt/bnxt_rxr.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c > index 992f97388c..8bc8ddc353 100644 > --- a/drivers/net/bnxt/bnxt_rxr.c > +++ b/drivers/net/bnxt/bnxt_rxr.c > @@ -1369,6 +1369,9 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq) > rxr->rx_buf_ring[i] = &rxq->fake_mbuf; > } > > + /* Explicitly reset this driver internal tracker on a ring init */ > + rxr->rx_next_cons = 0; > + > if (!bnxt_need_agg_ring(rxq->bp->eth_dev)) > return 0; > > @@ -1407,9 +1410,6 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq) > } > PMD_DRV_LOG(DEBUG, "TPA alloc Done!\n"); > > - /* Explicitly reset this driver internal tracker on a ring init */ > - rxr->rx_next_cons = 0; > - > return 0; > } > > -- > 2.28.0.497.g54e85e7 >