DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] net/bnxt: fix regression in non-vector mode Rx data path on Thor
@ 2021-11-03 16:04 Somnath Kotur
  2021-11-05  1:01 ` Ajit Khaparde
  0 siblings, 1 reply; 2+ messages in thread
From: Somnath Kotur @ 2021-11-03 16:04 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Somnath Kotur

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.kotur@broadcom.com>
---
 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


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [dpdk-dev] [PATCH] net/bnxt: fix regression in non-vector mode Rx data path on Thor
  2021-11-03 16:04 [dpdk-dev] [PATCH] net/bnxt: fix regression in non-vector mode Rx data path on Thor Somnath Kotur
@ 2021-11-05  1:01 ` Ajit Khaparde
  0 siblings, 0 replies; 2+ messages in thread
From: Ajit Khaparde @ 2021-11-05  1:01 UTC (permalink / raw)
  To: Somnath Kotur; +Cc: dpdk-dev, Ferruh Yigit

On Wed, Nov 3, 2021 at 9:10 AM Somnath Kotur <somnath.kotur@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.kotur@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
>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-11-05  1:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-03 16:04 [dpdk-dev] [PATCH] net/bnxt: fix regression in non-vector mode Rx data path on Thor Somnath Kotur
2021-11-05  1:01 ` Ajit Khaparde

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).