[dpdk-stable] patch 'net/bnxt: fix buffer allocation reattempt' has been queued to stable release 19.11.1

luca.boccassi at gmail.com luca.boccassi at gmail.com
Mon Feb 17 18:45:13 CET 2020


Hi,

FYI, your patch has been queued to stable release 19.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 02/19/20. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Luca Boccassi

---
>From 7f16d7d4c86a42b09cb6bfad2e4a650d2d9f8d49 Mon Sep 17 00:00:00 2001
From: Santoshkumar Karanappa Rastapur <santosh.rastapur at broadcom.com>
Date: Thu, 6 Feb 2020 22:03:14 +0530
Subject: [PATCH] net/bnxt: fix buffer allocation reattempt

[ upstream commit 01829dea7303bc91063c461a675856dbbbcc6460 ]

In case of a buffer allocation failure, we reattempt buffer allocation
before the Rx handler exits. We were not attempting this when producer
index is greater than the number of buffers to allocate. Fixed it with
correct checks.

Fixes: d9dd0b29ed31 ("net/bnxt: fix Rx handling and buffer allocation logic")

Signed-off-by: Santoshkumar Karanappa Rastapur <santosh.rastapur at broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur at broadcom.com>
---
 drivers/net/bnxt/bnxt_rxr.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c
index 3b713c2427..7338a81029 100644
--- a/drivers/net/bnxt/bnxt_rxr.c
+++ b/drivers/net/bnxt/bnxt_rxr.c
@@ -678,10 +678,11 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
 
 	/* Attempt to alloc Rx buf in case of a previous allocation failure. */
 	if (rc == -ENOMEM) {
-		int i;
+		int i = RING_NEXT(rxr->rx_ring_struct, prod);
+		int cnt = nb_rx_pkts;
 
-		for (i = prod; i <= nb_rx_pkts;
-			i = RING_NEXT(rxr->rx_ring_struct, i)) {
+		for (; cnt;
+			i = RING_NEXT(rxr->rx_ring_struct, i), cnt--) {
 			struct bnxt_sw_rx_bd *rx_buf = &rxr->rx_buf_ring[i];
 
 			/* Buffer already allocated for this index. */
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-02-17 17:00:15.913570477 +0000
+++ 0021-net-bnxt-fix-buffer-allocation-reattempt.patch	2020-02-17 17:00:15.307950455 +0000
@@ -1,15 +1,16 @@
-From 01829dea7303bc91063c461a675856dbbbcc6460 Mon Sep 17 00:00:00 2001
+From 7f16d7d4c86a42b09cb6bfad2e4a650d2d9f8d49 Mon Sep 17 00:00:00 2001
 From: Santoshkumar Karanappa Rastapur <santosh.rastapur at broadcom.com>
 Date: Thu, 6 Feb 2020 22:03:14 +0530
 Subject: [PATCH] net/bnxt: fix buffer allocation reattempt
 
+[ upstream commit 01829dea7303bc91063c461a675856dbbbcc6460 ]
+
 In case of a buffer allocation failure, we reattempt buffer allocation
 before the Rx handler exits. We were not attempting this when producer
 index is greater than the number of buffers to allocate. Fixed it with
 correct checks.
 
 Fixes: d9dd0b29ed31 ("net/bnxt: fix Rx handling and buffer allocation logic")
-Cc: stable at dpdk.org
 
 Signed-off-by: Santoshkumar Karanappa Rastapur <santosh.rastapur at broadcom.com>
 Reviewed-by: Somnath Kotur <somnath.kotur at broadcom.com>
@@ -18,7 +19,7 @@
  1 file changed, 4 insertions(+), 3 deletions(-)
 
 diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c
-index 1f47db97ba..bef9720f59 100644
+index 3b713c2427..7338a81029 100644
 --- a/drivers/net/bnxt/bnxt_rxr.c
 +++ b/drivers/net/bnxt/bnxt_rxr.c
 @@ -678,10 +678,11 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,


More information about the stable mailing list