net/vmxnet3: fix mbuf release on reset/stop
authorYong Wang <yongwang@vmware.com>
Wed, 26 Oct 2016 17:45:07 +0000 (10:45 -0700)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 7 Nov 2016 20:15:23 +0000 (21:15 +0100)
commit646edddf075bbe6865ebb12ac3da4effab28a571
tree210b7425e761dc86aab054c668f44f74081dfd86
parent956cc5461b20b1a6e3d4703fde6a83bded591c49
net/vmxnet3: fix mbuf release on reset/stop

During device reset/stop, vmxnet3 releases all mbufs in tx and
rx cmd ring.  For rx, we should go over all ring descriptors and
free using rte_pktmbuf_free_seg() instead of rte_pktmbuf_free()
as the metadata of the mbuf might not be properly initialized
(initialization after mempool creation is done in the rx routine)
and the mbuf should always be a single-segment one when populated.
For tx, we can use the existing way as mbuf, if any, will be a
valid one stashed in the eop.

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

Signed-off-by: Yong Wang <yongwang@vmware.com>
drivers/net/vmxnet3/vmxnet3_rxtx.c