net/enic: fix releasing mbufs when tearing down Rx queue
authorNelson Escobar <neescoba@cisco.com>
Tue, 14 Jun 2016 23:55:34 +0000 (16:55 -0700)
committerBruce Richardson <bruce.richardson@intel.com>
Thu, 23 Jun 2016 11:38:14 +0000 (13:38 +0200)
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: 947d860c821f ("enic: improve Rx performance")

Signed-off-by: Nelson Escobar <neescoba@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
drivers/net/enic/enic_main.c

index 32ecdae..e583b90 100644 (file)
@@ -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;