+void bnxt_free_rxq_mem(struct bnxt_rx_queue *rxq)
+{
+ bnxt_rx_queue_release_mbufs(rxq);
+
+ /* Free RX, AGG ring hardware descriptors */
+ if (rxq->rx_ring) {
+ bnxt_free_ring(rxq->rx_ring->rx_ring_struct);
+ rte_free(rxq->rx_ring->rx_ring_struct);
+ rxq->rx_ring->rx_ring_struct = NULL;
+ /* Free RX Agg ring hardware descriptors */
+ bnxt_free_ring(rxq->rx_ring->ag_ring_struct);
+ rte_free(rxq->rx_ring->ag_ring_struct);
+ rxq->rx_ring->ag_ring_struct = NULL;
+
+ rte_free(rxq->rx_ring);
+ rxq->rx_ring = NULL;
+ }
+ /* Free RX completion ring hardware descriptors */
+ if (rxq->cp_ring) {
+ bnxt_free_ring(rxq->cp_ring->cp_ring_struct);
+ rte_free(rxq->cp_ring->cp_ring_struct);
+ rxq->cp_ring->cp_ring_struct = NULL;
+ rte_free(rxq->cp_ring);
+ rxq->cp_ring = NULL;
+ }
+
+ bnxt_free_rxq_stats(rxq);
+ rte_memzone_free(rxq->mz);
+ rxq->mz = NULL;
+}
+
+void bnxt_rx_queue_release_op(struct rte_eth_dev *dev, uint16_t queue_idx)