patches for DPDK stable branches
 help / color / mirror / Atom feed
* [dpdk-stable] [PATCH 02/14] net/bnxt: set padding flags in Rx descriptor
       [not found] <20180417011126.12622-1-ajit.khaparde@broadcom.com>
@ 2018-04-17  1:11 ` Ajit Khaparde
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 03/14] net/bnxt: fix bnxt_hwrm_vnic_alloc Ajit Khaparde
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 9+ messages in thread
From: Ajit Khaparde @ 2018-04-17  1:11 UTC (permalink / raw)
  To: dev; +Cc: stable

Set the RX_PROD_PKT_BD_FLAGS_EOP_PAD in Rx buffer descriptors.
Fixes: 2eb53b134aae ("net/bnxt: add initial Rx code")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 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 ebdac1ca2..d9b4d768d 100644
--- a/drivers/net/bnxt/bnxt_rxr.c
+++ b/drivers/net/bnxt/bnxt_rxr.c
@@ -727,7 +727,7 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq)
 	if (rxq->rx_buf_use_size <= size)
 		size = rxq->rx_buf_use_size;
 
-	type = RX_PROD_PKT_BD_TYPE_RX_PROD_PKT;
+	type = RX_PROD_PKT_BD_TYPE_RX_PROD_PKT | RX_PROD_PKT_BD_FLAGS_EOP_PAD;
 
 	rxr = rxq->rx_ring;
 	ring = rxr->rx_ring_struct;
-- 
2.15.1 (Apple Git-101)

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

* [dpdk-stable] [PATCH 03/14] net/bnxt: fix bnxt_hwrm_vnic_alloc
       [not found] <20180417011126.12622-1-ajit.khaparde@broadcom.com>
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 02/14] net/bnxt: set padding flags in Rx descriptor Ajit Khaparde
@ 2018-04-17  1:11 ` Ajit Khaparde
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 04/14] net/bnxt: fix incorrect ntuple flag setting Ajit Khaparde
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 9+ messages in thread
From: Ajit Khaparde @ 2018-04-17  1:11 UTC (permalink / raw)
  To: dev; +Cc: stable

In bnxt_hwrm_vnic_alloc, use rte_cpu_to_le_32 while setting the flags.
Fixes: 2691827e82c0 ("net/bnxt: add HWRM VNIC alloc")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_hwrm.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 6e6daf4f8..0100f7473 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -1165,7 +1165,8 @@ int bnxt_hwrm_vnic_alloc(struct bnxt *bp, struct bnxt_vnic_info *vnic)
 	HWRM_PREP(req, VNIC_ALLOC);
 
 	if (vnic->func_default)
-		req.flags = HWRM_VNIC_ALLOC_INPUT_FLAGS_DEFAULT;
+		req.flags =
+			rte_cpu_to_le_32(HWRM_VNIC_ALLOC_INPUT_FLAGS_DEFAULT);
 	rc = bnxt_hwrm_send_message(bp, &req, sizeof(req));
 
 	HWRM_CHECK_RESULT();
-- 
2.15.1 (Apple Git-101)

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

* [dpdk-stable] [PATCH 04/14] net/bnxt: fix incorrect ntuple flag setting
       [not found] <20180417011126.12622-1-ajit.khaparde@broadcom.com>
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 02/14] net/bnxt: set padding flags in Rx descriptor Ajit Khaparde
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 03/14] net/bnxt: fix bnxt_hwrm_vnic_alloc Ajit Khaparde
@ 2018-04-17  1:11 ` Ajit Khaparde
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 05/14] net/bnxt: fix Rx checksum flags for tunnel frames Ajit Khaparde
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 9+ messages in thread
From: Ajit Khaparde @ 2018-04-17  1:11 UTC (permalink / raw)
  To: dev; +Cc: stable

We are wrongly setting the Rx path flag while creating the ntuple filter.
It needs to be set for L2 or Exact Match filters only.
Fixes: 5ef3b79fdfe6 ("net/bnxt: support flow filter ops")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_filter.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/bnxt/bnxt_filter.c b/drivers/net/bnxt/bnxt_filter.c
index 96b382ba8..5f3154060 100644
--- a/drivers/net/bnxt/bnxt_filter.c
+++ b/drivers/net/bnxt/bnxt_filter.c
@@ -806,7 +806,8 @@ bnxt_validate_and_parse_flow(struct rte_eth_dev *dev,
 	if (rc != 0)
 		goto ret;
 	//Since we support ingress attribute only - right now.
-	filter->flags = HWRM_CFA_EM_FLOW_ALLOC_INPUT_FLAGS_PATH_RX;
+	if (filter->filter_type == HWRM_CFA_EM_FILTER)
+		filter->flags = HWRM_CFA_EM_FLOW_ALLOC_INPUT_FLAGS_PATH_RX;
 
 	switch (act->type) {
 	case RTE_FLOW_ACTION_TYPE_QUEUE:
-- 
2.15.1 (Apple Git-101)

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

* [dpdk-stable] [PATCH 05/14] net/bnxt: fix Rx checksum flags for tunnel frames
       [not found] <20180417011126.12622-1-ajit.khaparde@broadcom.com>
                   ` (2 preceding siblings ...)
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 04/14] net/bnxt: fix incorrect ntuple flag setting Ajit Khaparde
@ 2018-04-17  1:11 ` Ajit Khaparde
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 06/14] net/bnxt: fix L2 filter cleanup Ajit Khaparde
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 9+ messages in thread
From: Ajit Khaparde @ 2018-04-17  1:11 UTC (permalink / raw)
  To: dev; +Cc: stable

Fix Rx checksum status for tunnel frames as seen by hardware.
Current code does not handle cases for tunnel frames correctly.

Fixes: 7ec39d8c524b ("net/bnxt: update status of Rx IP/L4 CKSUM")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_rxr.h | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_rxr.h b/drivers/net/bnxt/bnxt_rxr.h
index dd4ea5d1d..e8c47ca56 100644
--- a/drivers/net/bnxt/bnxt_rxr.h
+++ b/drivers/net/bnxt/bnxt_rxr.h
@@ -24,17 +24,25 @@
 #define BNXT_TPA_OUTER_L3_OFF(hdr_info)	\
 	((hdr_info) & 0x1ff)
 
-#define RX_CMP_L4_CS_BITS	rte_cpu_to_le_32(RX_PKT_CMPL_FLAGS2_L4_CS_CALC)
+#define RX_CMP_L4_CS_BITS	\
+	rte_cpu_to_le_32(RX_PKT_CMPL_FLAGS2_L4_CS_CALC | \
+			 RX_PKT_CMPL_FLAGS2_T_L4_CS_CALC)
 
-#define RX_CMP_L4_CS_ERR_BITS	rte_cpu_to_le_32(RX_PKT_CMPL_ERRORS_L4_CS_ERROR)
+#define RX_CMP_L4_CS_ERR_BITS	\
+	rte_cpu_to_le_32(RX_PKT_CMPL_ERRORS_L4_CS_ERROR | \
+			 RX_PKT_CMPL_ERRORS_T_L4_CS_ERROR)
 
 #define RX_CMP_L4_CS_OK(rxcmp1)						\
 	    (((rxcmp1)->flags2 & RX_CMP_L4_CS_BITS) &&		\
 	     !((rxcmp1)->errors_v2 & RX_CMP_L4_CS_ERR_BITS))
 
-#define RX_CMP_IP_CS_ERR_BITS	rte_cpu_to_le_32(RX_PKT_CMPL_ERRORS_IP_CS_ERROR)
+#define RX_CMP_IP_CS_ERR_BITS	\
+	rte_cpu_to_le_32(RX_PKT_CMPL_ERRORS_IP_CS_ERROR | \
+			 RX_PKT_CMPL_ERRORS_T_IP_CS_ERROR)
 
-#define RX_CMP_IP_CS_BITS	rte_cpu_to_le_32(RX_PKT_CMPL_FLAGS2_IP_CS_CALC)
+#define RX_CMP_IP_CS_BITS	\
+	rte_cpu_to_le_32(RX_PKT_CMPL_FLAGS2_IP_CS_CALC | \
+			 RX_PKT_CMPL_FLAGS2_T_IP_CS_CALC)
 
 #define RX_CMP_IP_CS_OK(rxcmp1)						\
 		(((rxcmp1)->flags2 & RX_CMP_IP_CS_BITS) &&	\
-- 
2.15.1 (Apple Git-101)

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

* [dpdk-stable] [PATCH 06/14] net/bnxt: fix L2 filter cleanup
       [not found] <20180417011126.12622-1-ajit.khaparde@broadcom.com>
                   ` (3 preceding siblings ...)
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 05/14] net/bnxt: fix Rx checksum flags for tunnel frames Ajit Khaparde
@ 2018-04-17  1:11 ` Ajit Khaparde
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 07/14] net/bnxt: fix bnxt_flow_destroy Ajit Khaparde
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 9+ messages in thread
From: Ajit Khaparde @ 2018-04-17  1:11 UTC (permalink / raw)
  To: dev; +Cc: stable

We are wrongly freeing up a filter in the driver while it is still
configured in the HW. This can cause incorrect L2 filter id to be
used for filters created subsequently.

This filter will be cleared on cleanup anyway.

Fixes: 5ef3b79fdfe6 ("net/bnxt: support flow filter ops")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_filter.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_filter.c b/drivers/net/bnxt/bnxt_filter.c
index 5f3154060..d28c04038 100644
--- a/drivers/net/bnxt/bnxt_filter.c
+++ b/drivers/net/bnxt/bnxt_filter.c
@@ -919,11 +919,6 @@ bnxt_validate_and_parse_flow(struct rte_eth_dev *dev,
 		goto ret;
 	}
 
-	if (filter1) {
-		bnxt_free_filter(bp, filter1);
-		filter1->fw_l2_filter_id = -1;
-	}
-
 	act = nxt_non_void_action(++act);
 	if (act->type != RTE_FLOW_ACTION_TYPE_END) {
 		rte_flow_error_set(error, EINVAL,
-- 
2.15.1 (Apple Git-101)

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

* [dpdk-stable] [PATCH 07/14] net/bnxt: fix bnxt_flow_destroy
       [not found] <20180417011126.12622-1-ajit.khaparde@broadcom.com>
                   ` (4 preceding siblings ...)
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 06/14] net/bnxt: fix L2 filter cleanup Ajit Khaparde
@ 2018-04-17  1:11 ` Ajit Khaparde
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 10/14] net/bnxt: reset l2_filter_id once filter is freed Ajit Khaparde
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 9+ messages in thread
From: Ajit Khaparde @ 2018-04-17  1:11 UTC (permalink / raw)
  To: dev; +Cc: stable

bnxt_hwrm_clear_l2_filter needs to be called only if the filter type
is L2 and not otherwise.
Also check for the return value of bnxt_hwrm_clear_l2_filter().

Fixes: 5ef3b79fdfe6 ("net/bnxt: support flow filter ops")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_filter.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_filter.c b/drivers/net/bnxt/bnxt_filter.c
index d28c04038..179349539 100644
--- a/drivers/net/bnxt/bnxt_filter.c
+++ b/drivers/net/bnxt/bnxt_filter.c
@@ -1144,8 +1144,8 @@ bnxt_flow_destroy(struct rte_eth_dev *dev,
 		ret = bnxt_hwrm_clear_em_filter(bp, filter);
 	if (filter->filter_type == HWRM_CFA_NTUPLE_FILTER)
 		ret = bnxt_hwrm_clear_ntuple_filter(bp, filter);
-
-	bnxt_hwrm_clear_l2_filter(bp, filter);
+	else
+		ret = bnxt_hwrm_clear_l2_filter(bp, filter);
 	if (!ret) {
 		STAILQ_REMOVE(&vnic->flow_list, flow, rte_flow, next);
 		rte_free(flow);
-- 
2.15.1 (Apple Git-101)

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

* [dpdk-stable] [PATCH 10/14] net/bnxt: reset l2_filter_id once filter is freed
       [not found] <20180417011126.12622-1-ajit.khaparde@broadcom.com>
                   ` (5 preceding siblings ...)
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 07/14] net/bnxt: fix bnxt_flow_destroy Ajit Khaparde
@ 2018-04-17  1:11 ` Ajit Khaparde
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 11/14] net/bnxt: free memory allocated for VF filters Ajit Khaparde
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 13/14] net/bnxt: avoid freeing mem_zone multiple times Ajit Khaparde
  8 siblings, 0 replies; 9+ messages in thread
From: Ajit Khaparde @ 2018-04-17  1:11 UTC (permalink / raw)
  To: dev; +Cc: stable

The fw_l2_filter_id for a ntuple filter is needed only for the lifetime
of the ntuple filter. Once the filter is free, reset the field.
The associated l2_filter will be freed as a part of its own cleanup.

Fixes: 5ef3b79fdfe6 ("net/bnxt: support flow filter ops")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_hwrm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 3a326d4f5..c7a6157d9 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -3696,6 +3696,7 @@ int bnxt_hwrm_clear_ntuple_filter(struct bnxt *bp,
 	HWRM_UNLOCK();
 
 	filter->fw_ntuple_filter_id = -1;
+	filter->fw_l2_filter_id = UINT64_MAX;
 
 	return 0;
 }
-- 
2.15.1 (Apple Git-101)

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

* [dpdk-stable] [PATCH 11/14] net/bnxt: free memory allocated for VF filters
       [not found] <20180417011126.12622-1-ajit.khaparde@broadcom.com>
                   ` (6 preceding siblings ...)
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 10/14] net/bnxt: reset l2_filter_id once filter is freed Ajit Khaparde
@ 2018-04-17  1:11 ` Ajit Khaparde
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 13/14] net/bnxt: avoid freeing mem_zone multiple times Ajit Khaparde
  8 siblings, 0 replies; 9+ messages in thread
From: Ajit Khaparde @ 2018-04-17  1:11 UTC (permalink / raw)
  To: dev; +Cc: stable

Memory allocated to hold VF filter info is not being freed currently.
This can cause potential memory leak.
Fixes: 7a5b0874440e ("net/bnxt: support to add a VF MAC address")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_filter.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_filter.c b/drivers/net/bnxt/bnxt_filter.c
index 179349539..c92806b4f 100644
--- a/drivers/net/bnxt/bnxt_filter.c
+++ b/drivers/net/bnxt/bnxt_filter.c
@@ -131,6 +131,14 @@ void bnxt_free_filter_mem(struct bnxt *bp)
 
 	rte_free(bp->filter_info);
 	bp->filter_info = NULL;
+
+	for (i = 0; i < bp->pf.max_vfs; i++) {
+		STAILQ_FOREACH(filter, &bp->pf.vf_info[i].filter, next) {
+			rte_free(filter);
+			STAILQ_REMOVE(&bp->pf.vf_info[i].filter, filter,
+				      bnxt_filter_info, next);
+		}
+	}
 }
 
 int bnxt_alloc_filter_mem(struct bnxt *bp)
-- 
2.15.1 (Apple Git-101)

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

* [dpdk-stable] [PATCH 13/14] net/bnxt: avoid freeing mem_zone multiple times
       [not found] <20180417011126.12622-1-ajit.khaparde@broadcom.com>
                   ` (7 preceding siblings ...)
  2018-04-17  1:11 ` [dpdk-stable] [PATCH 11/14] net/bnxt: free memory allocated for VF filters Ajit Khaparde
@ 2018-04-17  1:11 ` Ajit Khaparde
  8 siblings, 0 replies; 9+ messages in thread
From: Ajit Khaparde @ 2018-04-17  1:11 UTC (permalink / raw)
  To: dev; +Cc: stable

Since we are storing the mem_zone address for each ring created,
we are freeing the same address multiple times.
For example the memory zone created for Rx is being freed during
Rx ring cleanup, AGG ring cleanup and CQ cleanup.
Avoid this by storing the memory zone address in RXQ instead and
free it as a part of queue_release dev_op.
In the same way do the same for TX queues as well.

Fixes: 51c87ebafc7d ("net/bnxt: add Tx queue create/destroy")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_ring.c | 10 +++++++---
 drivers/net/bnxt/bnxt_ring.h |  4 ++--
 drivers/net/bnxt/bnxt_rxq.c  |  4 +++-
 drivers/net/bnxt/bnxt_rxq.h  |  1 +
 drivers/net/bnxt/bnxt_txq.c  |  4 +++-
 drivers/net/bnxt/bnxt_txq.h  |  1 +
 6 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c
index 4998c610a..478eab4f3 100644
--- a/drivers/net/bnxt/bnxt_ring.c
+++ b/drivers/net/bnxt/bnxt_ring.c
@@ -28,7 +28,7 @@ void bnxt_free_ring(struct bnxt_ring *ring)
 		memset((char *)*ring->vmem, 0, ring->vmem_size);
 		*ring->vmem = NULL;
 	}
-	rte_memzone_free((const struct rte_memzone *)ring->mem_zone);
+	ring->mem_zone = NULL;
 }
 
 /*
@@ -61,12 +61,14 @@ int bnxt_init_ring_grps(struct bnxt *bp)
  * rx bd ring - Only non-zero length if rx_ring_info is not NULL
  */
 int bnxt_alloc_rings(struct bnxt *bp, uint16_t qidx,
-			    struct bnxt_tx_ring_info *tx_ring_info,
-			    struct bnxt_rx_ring_info *rx_ring_info,
+			    struct bnxt_tx_queue *txq,
+			    struct bnxt_rx_queue *rxq,
 			    struct bnxt_cp_ring_info *cp_ring_info,
 			    const char *suffix)
 {
 	struct bnxt_ring *cp_ring = cp_ring_info->cp_ring_struct;
+	struct bnxt_rx_ring_info *rx_ring_info = rxq ? rxq->rx_ring : NULL;
+	struct bnxt_tx_ring_info *tx_ring_info = txq ? txq->tx_ring : NULL;
 	struct bnxt_ring *tx_ring;
 	struct bnxt_ring *rx_ring;
 	struct rte_pci_device *pdev = bp->pdev;
@@ -165,6 +167,7 @@ int bnxt_alloc_rings(struct bnxt *bp, uint16_t qidx,
 	}
 
 	if (tx_ring_info) {
+		txq->mz = mz;
 		tx_ring = tx_ring_info->tx_ring_struct;
 
 		tx_ring->bd = ((char *)mz->addr + tx_ring_start);
@@ -184,6 +187,7 @@ int bnxt_alloc_rings(struct bnxt *bp, uint16_t qidx,
 	}
 
 	if (rx_ring_info) {
+		rxq->mz = mz;
 		rx_ring = rx_ring_info->rx_ring_struct;
 
 		rx_ring->bd = ((char *)mz->addr + rx_ring_start);
diff --git a/drivers/net/bnxt/bnxt_ring.h b/drivers/net/bnxt/bnxt_ring.h
index d70eb64de..6c86259e8 100644
--- a/drivers/net/bnxt/bnxt_ring.h
+++ b/drivers/net/bnxt/bnxt_ring.h
@@ -65,8 +65,8 @@ struct bnxt_cp_ring_info;
 void bnxt_free_ring(struct bnxt_ring *ring);
 int bnxt_init_ring_grps(struct bnxt *bp);
 int bnxt_alloc_rings(struct bnxt *bp, uint16_t qidx,
-			    struct bnxt_tx_ring_info *tx_ring_info,
-			    struct bnxt_rx_ring_info *rx_ring_info,
+			    struct bnxt_tx_queue *txq,
+			    struct bnxt_rx_queue *rxq,
 			    struct bnxt_cp_ring_info *cp_ring_info,
 			    const char *suffix);
 int bnxt_alloc_hwrm_rings(struct bnxt *bp);
diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c
index d797a47e9..e939c9ac0 100644
--- a/drivers/net/bnxt/bnxt_rxq.c
+++ b/drivers/net/bnxt/bnxt_rxq.c
@@ -267,6 +267,8 @@ void bnxt_rx_queue_release_op(void *rx_queue)
 		bnxt_free_ring(rxq->cp_ring->cp_ring_struct);
 
 		bnxt_free_rxq_stats(rxq);
+		rte_memzone_free(rxq->mz);
+		rxq->mz = NULL;
 
 		rte_free(rxq);
 	}
@@ -328,7 +330,7 @@ int bnxt_rx_queue_setup_op(struct rte_eth_dev *eth_dev,
 
 	eth_dev->data->rx_queues[queue_idx] = rxq;
 	/* Allocate RX ring hardware descriptors */
-	if (bnxt_alloc_rings(bp, queue_idx, NULL, rxq->rx_ring, rxq->cp_ring,
+	if (bnxt_alloc_rings(bp, queue_idx, NULL, rxq, rxq->cp_ring,
 			"rxr")) {
 		PMD_DRV_LOG(ERR,
 			"ring_dma_zone_reserve for rx_ring failed!\n");
diff --git a/drivers/net/bnxt/bnxt_rxq.h b/drivers/net/bnxt/bnxt_rxq.h
index 3350d7719..8307f603c 100644
--- a/drivers/net/bnxt/bnxt_rxq.h
+++ b/drivers/net/bnxt/bnxt_rxq.h
@@ -33,6 +33,7 @@ struct bnxt_rx_queue {
 	struct bnxt_rx_ring_info	*rx_ring;
 	struct bnxt_cp_ring_info	*cp_ring;
 	rte_atomic64_t		rx_mbuf_alloc_fail;
+	const struct rte_memzone *mz;
 };
 
 void bnxt_free_rxq_stats(struct bnxt_rx_queue *rxq);
diff --git a/drivers/net/bnxt/bnxt_txq.c b/drivers/net/bnxt/bnxt_txq.c
index 37531ea49..07e25d77b 100644
--- a/drivers/net/bnxt/bnxt_txq.c
+++ b/drivers/net/bnxt/bnxt_txq.c
@@ -65,6 +65,8 @@ void bnxt_tx_queue_release_op(void *tx_queue)
 		bnxt_free_ring(txq->cp_ring->cp_ring_struct);
 
 		bnxt_free_txq_stats(txq);
+		rte_memzone_free(txq->mz);
+		txq->mz = NULL;
 
 		rte_free(txq);
 	}
@@ -119,7 +121,7 @@ int bnxt_tx_queue_setup_op(struct rte_eth_dev *eth_dev,
 	txq->port_id = eth_dev->data->port_id;
 
 	/* Allocate TX ring hardware descriptors */
-	if (bnxt_alloc_rings(bp, queue_idx, txq->tx_ring, NULL, txq->cp_ring,
+	if (bnxt_alloc_rings(bp, queue_idx, txq, NULL, txq->cp_ring,
 			"txr")) {
 		PMD_DRV_LOG(ERR, "ring_dma_zone_reserve for tx_ring failed!");
 		bnxt_tx_queue_release_op(txq);
diff --git a/drivers/net/bnxt/bnxt_txq.h b/drivers/net/bnxt/bnxt_txq.h
index 47bbef1e7..8df87148f 100644
--- a/drivers/net/bnxt/bnxt_txq.h
+++ b/drivers/net/bnxt/bnxt_txq.h
@@ -33,6 +33,7 @@ struct bnxt_tx_queue {
 
 	unsigned int		cp_nr_rings;
 	struct bnxt_cp_ring_info	*cp_ring;
+	const struct rte_memzone *mz;
 };
 
 void bnxt_free_txq_stats(struct bnxt_tx_queue *txq);
-- 
2.15.1 (Apple Git-101)

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

end of thread, other threads:[~2018-04-17  1:11 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20180417011126.12622-1-ajit.khaparde@broadcom.com>
2018-04-17  1:11 ` [dpdk-stable] [PATCH 02/14] net/bnxt: set padding flags in Rx descriptor Ajit Khaparde
2018-04-17  1:11 ` [dpdk-stable] [PATCH 03/14] net/bnxt: fix bnxt_hwrm_vnic_alloc Ajit Khaparde
2018-04-17  1:11 ` [dpdk-stable] [PATCH 04/14] net/bnxt: fix incorrect ntuple flag setting Ajit Khaparde
2018-04-17  1:11 ` [dpdk-stable] [PATCH 05/14] net/bnxt: fix Rx checksum flags for tunnel frames Ajit Khaparde
2018-04-17  1:11 ` [dpdk-stable] [PATCH 06/14] net/bnxt: fix L2 filter cleanup Ajit Khaparde
2018-04-17  1:11 ` [dpdk-stable] [PATCH 07/14] net/bnxt: fix bnxt_flow_destroy Ajit Khaparde
2018-04-17  1:11 ` [dpdk-stable] [PATCH 10/14] net/bnxt: reset l2_filter_id once filter is freed Ajit Khaparde
2018-04-17  1:11 ` [dpdk-stable] [PATCH 11/14] net/bnxt: free memory allocated for VF filters Ajit Khaparde
2018-04-17  1:11 ` [dpdk-stable] [PATCH 13/14] net/bnxt: avoid freeing mem_zone multiple times 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).