Acked-by: Cheng Jiang <cheng1.ji...@intel.com>
> -----Original Message----- > From: Ma, WenwuX <wenwux...@intel.com> > Sent: Wednesday, August 18, 2021 1:13 AM > To: dev@dpdk.org > Cc: maxime.coque...@redhat.com; Xia, Chenbo <chenbo....@intel.com>; > Jiang, Cheng1 <cheng1.ji...@intel.com>; Hu, Jiayu <jiayu...@intel.com>; > Ma, WenwuX <wenwux...@intel.com>; sta...@dpdk.org > Subject: [PATCH] examples/vhost: fix memory leak on forwarding packets. > > In function virtio_tx_local(), when the device receiving the packet is the > same as the device to which the packet is forwarded, or the device is > removed, we return but not free the packet, it will cause a memory leak. > > Fixes: 4796ad63ba1f ("examples/vhost: import userspace vhost application") > Cc: sta...@dpdk.org > > Signed-off-by: Wenwu Ma <wenwux...@intel.com> > --- > examples/vhost/main.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/examples/vhost/main.c b/examples/vhost/main.c index > bc3d71c898..07fd90ec64 100644 > --- a/examples/vhost/main.c > +++ b/examples/vhost/main.c > @@ -965,6 +965,7 @@ virtio_tx_local(struct vhost_dev *vdev, struct > rte_mbuf *m) > return -1; > > if (vdev->vid == dst_vdev->vid) { > + rte_pktmbuf_free(m); > RTE_LOG_DP(DEBUG, VHOST_DATA, > "(%d) TX: src and dst MAC is same. Dropping > packet.\n", > vdev->vid); > @@ -975,6 +976,7 @@ virtio_tx_local(struct vhost_dev *vdev, struct > rte_mbuf *m) > "(%d) TX: MAC address is local\n", dst_vdev->vid); > > if (unlikely(dst_vdev->remove)) { > + rte_pktmbuf_free(m); > RTE_LOG_DP(DEBUG, VHOST_DATA, > "(%d) device is marked for removal\n", dst_vdev- > >vid); > return 0; > -- > 2.25.1