The device cleanup logic was freeing most of the ring related memory,
but was not freeing up the mem zone associated with the rings.
This patch fixes the issue.

Fixes: 2eb53b134aae ("net/bnxt: add initial Rx code")
Fixes: 6eb3cc2294fd ("net/bnxt: add initial Tx code")
Cc: sta...@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khapa...@broadcom.com>
Reviewed-by: Lance Richardson <lance.richard...@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.ko...@broadcom.com>
---
 drivers/net/bnxt/bnxt_rxr.c | 3 +++
 drivers/net/bnxt/bnxt_txr.c | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c
index a40fa50138..4c1ee4294e 100644
--- a/drivers/net/bnxt/bnxt_rxr.c
+++ b/drivers/net/bnxt/bnxt_rxr.c
@@ -1207,6 +1207,9 @@ void bnxt_free_rx_rings(struct bnxt *bp)
                rte_free(rxq->cp_ring->cp_ring_struct);
                rte_free(rxq->cp_ring);
 
+               rte_memzone_free(rxq->mz);
+               rxq->mz = NULL;
+
                rte_free(rxq);
                bp->rx_queues[i] = NULL;
        }
diff --git a/drivers/net/bnxt/bnxt_txr.c b/drivers/net/bnxt/bnxt_txr.c
index 47824334ae..9e45ddd7a8 100644
--- a/drivers/net/bnxt/bnxt_txr.c
+++ b/drivers/net/bnxt/bnxt_txr.c
@@ -38,6 +38,9 @@ void bnxt_free_tx_rings(struct bnxt *bp)
                rte_free(txq->cp_ring->cp_ring_struct);
                rte_free(txq->cp_ring);
 
+               rte_memzone_free(txq->mz);
+               txq->mz = NULL;
+
                rte_free(txq);
                bp->tx_queues[i] = NULL;
        }
-- 
2.30.1 (Apple Git-130)

Reply via email to