[dpdk-dev,v2,5/6] net/vmxnet3: receive queue memory leak

Message ID 1497529062-17854-5-git-send-email-ciwillia@brocade.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Chas Williams June 15, 2017, 12:17 p.m. UTC
  From: Mandeep Rohilla <mrohilla@brocade.com>

This addresses an mbuf leak in an error condition during packet
receive.

Fixes: dfaff37fc46d ("vmxnet3: import new vmxnet3 poll mode driver implementation")

Signed-off-by: Mandeep Rohilla <mrohilla@brocade.com>
---
 drivers/net/vmxnet3/vmxnet3_rxtx.c | 6 ++++++
 1 file changed, 6 insertions(+)
  

Comments

Shrikrishna Khare June 23, 2017, 11 p.m. UTC | #1
On Thu, 15 Jun 2017, Charles (Chas) Williams wrote:

> From: Mandeep Rohilla <mrohilla@brocade.com>
> 
> This addresses an mbuf leak in an error condition during packet
> receive.
> 
> Fixes: dfaff37fc46d ("vmxnet3: import new vmxnet3 poll mode driver implementation")
> 
> Signed-off-by: Mandeep Rohilla <mrohilla@brocade.com>

Acked-by: Shrikrishna Khare <skhare@vmware.com>
  

Patch

diff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c b/drivers/net/vmxnet3/vmxnet3_rxtx.c
index d8713a1..13c73f6 100644
--- a/drivers/net/vmxnet3/vmxnet3_rxtx.c
+++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c
@@ -800,6 +800,12 @@  vmxnet3_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
 				   (int)(rcd - (struct Vmxnet3_RxCompDesc *)
 					 rxq->comp_ring.base), rcd->rxdIdx);
 			rte_pktmbuf_free_seg(rxm);
+			if (rxq->start_seg) {
+				struct rte_mbuf *start = rxq->start_seg;
+
+				rxq->start_seg = NULL;
+				rte_pktmbuf_free(start);
+			}
 			goto rcd_done;
 		}