[dpdk-stable] patch 'net/bnxt: fix structure variable initialization' has been queued to stable release 19.11.6

luca.boccassi at gmail.com luca.boccassi at gmail.com
Wed Oct 28 11:42:52 CET 2020


Hi,

FYI, your patch has been queued to stable release 19.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 10/30/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 2a7ce4a15fc72e162383b974b31220f70971742a Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
Date: Fri, 28 Aug 2020 10:31:09 +0530
Subject: [PATCH] net/bnxt: fix structure variable initialization

[ upstream commit ce41561d1b998d9e15f74f9c3a6aff78e0f99871 ]

During port start if bnxt_alloc_all_hwrm_stat_ctxs() fails,
in the cleanup path we do see errors like below:

bnxt_hwrm_ring_free(): hwrm_ring_free cp failed. rc:2
bnxt_hwrm_ring_free(): hwrm_ring_free rx failed. rc:2

The reason for this is in bnxt_free_all_hwrm_rings(), the check
is made against "ring->fw_ring_id != INVALID_HW_RING_ID" which
always return true as ring->fw_ring_id is not set to INVALID_HW_RING_ID
while initialising the ring structs.

Fixes: 6eb3cc2294fd ("net/bnxt: add initial Tx code")
Fixes: 2eb53b134aae ("net/bnxt: add initial Rx code")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
Reviewed-by: Lance Richardson <lance.richardson at broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
---
 drivers/net/bnxt/bnxt_ring.c | 1 +
 drivers/net/bnxt/bnxt_rxr.c  | 3 +++
 drivers/net/bnxt/bnxt_txr.c  | 2 ++
 3 files changed, 6 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c
index 1999cd7861..bb60f8ab0f 100644
--- a/drivers/net/bnxt/bnxt_ring.c
+++ b/drivers/net/bnxt/bnxt_ring.c
@@ -451,6 +451,7 @@ int bnxt_alloc_rxtx_nq_ring(struct bnxt *bp)
 	ring->ring_mask = ring->ring_size - 1;
 	ring->vmem_size = 0;
 	ring->vmem = NULL;
+	ring->fw_ring_id = INVALID_HW_RING_ID;
 
 	nqr->cp_ring_struct = ring;
 	rc = bnxt_alloc_rings(bp, 0, NULL, NULL, nqr, NULL, "l2_nqr");
diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c
index fa3b4a6be4..32eaf75ed5 100644
--- a/drivers/net/bnxt/bnxt_rxr.c
+++ b/drivers/net/bnxt/bnxt_rxr.c
@@ -779,6 +779,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id)
 	ring->bd_dma = rxr->rx_desc_mapping;
 	ring->vmem_size = ring->ring_size * sizeof(struct bnxt_sw_rx_bd);
 	ring->vmem = (void **)&rxr->rx_buf_ring;
+	ring->fw_ring_id = INVALID_HW_RING_ID;
 
 	cpr = rte_zmalloc_socket("bnxt_rx_ring",
 				 sizeof(struct bnxt_cp_ring_info),
@@ -800,6 +801,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id)
 	ring->bd_dma = cpr->cp_desc_mapping;
 	ring->vmem_size = 0;
 	ring->vmem = NULL;
+	ring->fw_ring_id = INVALID_HW_RING_ID;
 
 	/* Allocate Aggregator rings */
 	ring = rte_zmalloc_socket("bnxt_rx_ring_struct",
@@ -815,6 +817,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id)
 	ring->bd_dma = rxr->ag_desc_mapping;
 	ring->vmem_size = ring->ring_size * sizeof(struct bnxt_sw_rx_bd);
 	ring->vmem = (void **)&rxr->ag_buf_ring;
+	ring->fw_ring_id = INVALID_HW_RING_ID;
 
 	return 0;
 }
diff --git a/drivers/net/bnxt/bnxt_txr.c b/drivers/net/bnxt/bnxt_txr.c
index 16021407e8..9a18e8f6f7 100644
--- a/drivers/net/bnxt/bnxt_txr.c
+++ b/drivers/net/bnxt/bnxt_txr.c
@@ -78,6 +78,7 @@ int bnxt_init_tx_ring_struct(struct bnxt_tx_queue *txq, unsigned int socket_id)
 	ring->bd_dma = txr->tx_desc_mapping;
 	ring->vmem_size = ring->ring_size * sizeof(struct bnxt_sw_tx_bd);
 	ring->vmem = (void **)&txr->tx_buf_ring;
+	ring->fw_ring_id = INVALID_HW_RING_ID;
 
 	cpr = rte_zmalloc_socket("bnxt_tx_ring",
 				 sizeof(struct bnxt_cp_ring_info),
@@ -98,6 +99,7 @@ int bnxt_init_tx_ring_struct(struct bnxt_tx_queue *txq, unsigned int socket_id)
 	ring->bd_dma = cpr->cp_desc_mapping;
 	ring->vmem_size = 0;
 	ring->vmem = NULL;
+	ring->fw_ring_id = INVALID_HW_RING_ID;
 
 	return 0;
 }
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-10-28 10:35:12.198850185 +0000
+++ 0013-net-bnxt-fix-structure-variable-initialization.patch	2020-10-28 10:35:11.420828787 +0000
@@ -1,8 +1,10 @@
-From ce41561d1b998d9e15f74f9c3a6aff78e0f99871 Mon Sep 17 00:00:00 2001
+From 2a7ce4a15fc72e162383b974b31220f70971742a Mon Sep 17 00:00:00 2001
 From: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
 Date: Fri, 28 Aug 2020 10:31:09 +0530
 Subject: [PATCH] net/bnxt: fix structure variable initialization
 
+[ upstream commit ce41561d1b998d9e15f74f9c3a6aff78e0f99871 ]
+
 During port start if bnxt_alloc_all_hwrm_stat_ctxs() fails,
 in the cleanup path we do see errors like below:
 
@@ -16,7 +18,6 @@
 
 Fixes: 6eb3cc2294fd ("net/bnxt: add initial Tx code")
 Fixes: 2eb53b134aae ("net/bnxt: add initial Rx code")
-Cc: stable at dpdk.org
 
 Signed-off-by: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
 Reviewed-by: Lance Richardson <lance.richardson at broadcom.com>
@@ -28,7 +29,7 @@
  3 files changed, 6 insertions(+)
 
 diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c
-index 54f6547442..8f2296b293 100644
+index 1999cd7861..bb60f8ab0f 100644
 --- a/drivers/net/bnxt/bnxt_ring.c
 +++ b/drivers/net/bnxt/bnxt_ring.c
 @@ -451,6 +451,7 @@ int bnxt_alloc_rxtx_nq_ring(struct bnxt *bp)
@@ -40,10 +41,10 @@
  	nqr->cp_ring_struct = ring;
  	rc = bnxt_alloc_rings(bp, 0, NULL, NULL, nqr, NULL, "l2_nqr");
 diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c
-index 43b1256dcc..b086898148 100644
+index fa3b4a6be4..32eaf75ed5 100644
 --- a/drivers/net/bnxt/bnxt_rxr.c
 +++ b/drivers/net/bnxt/bnxt_rxr.c
-@@ -962,6 +962,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id)
+@@ -779,6 +779,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id)
  	ring->bd_dma = rxr->rx_desc_mapping;
  	ring->vmem_size = ring->ring_size * sizeof(struct bnxt_sw_rx_bd);
  	ring->vmem = (void **)&rxr->rx_buf_ring;
@@ -51,7 +52,7 @@
  
  	cpr = rte_zmalloc_socket("bnxt_rx_ring",
  				 sizeof(struct bnxt_cp_ring_info),
-@@ -983,6 +984,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id)
+@@ -800,6 +801,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id)
  	ring->bd_dma = cpr->cp_desc_mapping;
  	ring->vmem_size = 0;
  	ring->vmem = NULL;
@@ -59,7 +60,7 @@
  
  	/* Allocate Aggregator rings */
  	ring = rte_zmalloc_socket("bnxt_rx_ring_struct",
-@@ -998,6 +1000,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id)
+@@ -815,6 +817,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id)
  	ring->bd_dma = rxr->ag_desc_mapping;
  	ring->vmem_size = ring->ring_size * sizeof(struct bnxt_sw_rx_bd);
  	ring->vmem = (void **)&rxr->ag_buf_ring;
@@ -68,7 +69,7 @@
  	return 0;
  }
 diff --git a/drivers/net/bnxt/bnxt_txr.c b/drivers/net/bnxt/bnxt_txr.c
-index c7a2de67c7..20683315ed 100644
+index 16021407e8..9a18e8f6f7 100644
 --- a/drivers/net/bnxt/bnxt_txr.c
 +++ b/drivers/net/bnxt/bnxt_txr.c
 @@ -78,6 +78,7 @@ int bnxt_init_tx_ring_struct(struct bnxt_tx_queue *txq, unsigned int socket_id)


More information about the stable mailing list