When trying to release the mbufs, the function was incorrectly
iterating over the max size configured instead of the actual size
of the ring.

Fixes: cbb44dddcade ("enic: receive path performance improvements")

Signed-off-by: Nelson Escobar <neescoba at cisco.com>
Reviewed-by: John Daley <johndale at cisco.com>
---
 drivers/net/enic/enic_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index 0576a6e..9b6fe36 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -80,7 +80,7 @@ static int is_eth_addr_valid(uint8_t *addr)
 }

 static void
-enic_rxmbuf_queue_release(struct enic *enic, struct vnic_rq *rq)
+enic_rxmbuf_queue_release(__rte_unused struct enic *enic, struct vnic_rq *rq)
 {
        uint16_t i;

@@ -89,7 +89,7 @@ enic_rxmbuf_queue_release(struct enic *enic, struct vnic_rq 
*rq)
                return;
        }

-       for (i = 0; i < enic->config.rq_desc_count; i++) {
+       for (i = 0; i < rq->ring.desc_count; i++) {
                if (rq->mbuf_ring[i]) {
                        rte_pktmbuf_free_seg(rq->mbuf_ring[i]);
                        rq->mbuf_ring[i] = NULL;
-- 
2.7.0

Reply via email to