mbufs could be chained (by the "next" field of rte_mbuf struct), when
an mbuf is not big enough to hold a big packet, say when TSO is enabled.
rte_pktmbuf_free_seg() frees the head mbuf only, leading mbuf leaks.
This patch fix it by invoking the right API rte_pktmbuf_free(), to
free all mbufs in the chain.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
Yasuhito Takamiya yasuhito@gmail.com
Yin Lin linyi@vmware.com
Yu Zhiguo yuzg@cn.fujitsu.com
+Yuanhan Liu yuanhan.liu@linux.intel.com
ZhengLingyun konghuarukhr@163.com
Zoltán Balogh zoltan.balogh@ericsson.com
Zoltan Kiss zoltan.kiss@citrix.com
{
struct rte_mbuf *pkt = (struct rte_mbuf *) p;
- rte_pktmbuf_free_seg(pkt);
+ rte_pktmbuf_free(pkt);
}
static void
int i;
for (i = nb_tx; i < txq->count; i++) {
- rte_pktmbuf_free_seg(txq->burst_pkts[i]);
+ rte_pktmbuf_free(txq->burst_pkts[i]);
}
rte_spinlock_lock(&dev->stats_lock);
dev->stats.tx_dropped += txq->count-nb_tx;