From: Rahul Gupta <rahul.gu...@broadcom.com>

When a queue is started after deferred_start, then increment raw_prod
irrespective of new mbuf is allocated or old mbufs are used.

Fixes: d256c73c1122 ("net/bnxt: fix memory leak during queue restart")
Cc: sta...@dpdk.org

Signed-off-by: Rahul Gupta <rahul.gu...@broadcom.com>
Signed-off-by: Kalesh AP <kalesh-anakkur.pura...@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.ko...@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khapa...@broadcom.com>
---
 drivers/net/bnxt/bnxt_rxr.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c
index d2955ba..ee1acb1 100644
--- a/drivers/net/bnxt/bnxt_rxr.c
+++ b/drivers/net/bnxt/bnxt_rxr.c
@@ -987,9 +987,9 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq)
                                            rxq->queue_id, i, ring->ring_size);
                                break;
                        }
-                       rxr->rx_prod = prod;
-                       prod = RING_NEXT(rxr->rx_ring_struct, prod);
                }
+               rxr->rx_prod = prod;
+               prod = RING_NEXT(rxr->rx_ring_struct, prod);
        }
 
        ring = rxr->ag_ring_struct;
@@ -1005,9 +1005,9 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq)
                                            rxq->queue_id, i, ring->ring_size);
                                break;
                        }
-                       rxr->ag_prod = prod;
-                       prod = RING_NEXT(rxr->ag_ring_struct, prod);
                }
+               rxr->ag_prod = prod;
+               prod = RING_NEXT(rxr->ag_ring_struct, prod);
        }
        PMD_DRV_LOG(DEBUG, "AGG Done!\n");
 
-- 
2.10.1

Reply via email to