Hi, qi Is your patch duplicated with this http://www.dpdk.org/dev/patchwork/patch/29814/ ?
Thanks Jingjing > -----Original Message----- > From: Zhang, Qi Z > Sent: Monday, October 9, 2017 4:54 PM > To: Wu, Jingjing <jingjing...@intel.com>; Xing, Beilei <beilei.x...@intel.com> > Cc: dev@dpdk.org; Zhang, Qi Z <qi.z.zh...@intel.com>; sta...@dpdk.org > Subject: [PATCH] net/i40e: fix unexpected mbuf free in vPMD > > The patch reset tx queue sw_ring's mbuf to NULL after it is free in > i40_tx_free_bufs, this prevent same mbuf be free again in > i40e_dev_tx_queue_release. This fix follow the same implemenation of non- > vPMD. > > Fixes: b4669bb95038 ("i40e: add vector Tx") > Cc: sta...@dpdk.org > > Signed-off-by: Qi Zhang <qi.z.zh...@intel.com> > --- > drivers/net/i40e/i40e_rxtx_vec_common.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h > b/drivers/net/i40e/i40e_rxtx_vec_common.h > index 39a6da0..ed51b4d 100644 > --- a/drivers/net/i40e/i40e_rxtx_vec_common.h > +++ b/drivers/net/i40e/i40e_rxtx_vec_common.h > @@ -124,11 +124,13 @@ i40e_tx_free_bufs(struct i40e_tx_queue *txq) > */ > txep = &txq->sw_ring[txq->tx_next_dd - (n - 1)]; > m = rte_pktmbuf_prefree_seg(txep[0].mbuf); > + txep[0].mbuf = NULL; > if (likely(m != NULL)) { > free[0] = m; > nb_free = 1; > for (i = 1; i < n; i++) { > m = rte_pktmbuf_prefree_seg(txep[i].mbuf); > + txep[i].mbuf = NULL; > if (likely(m != NULL)) { > if (likely(m->pool == free[0]->pool)) { > free[nb_free++] = m; > @@ -145,6 +147,7 @@ i40e_tx_free_bufs(struct i40e_tx_queue *txq) > } else { > for (i = 1; i < n; i++) { > m = rte_pktmbuf_prefree_seg(txep[i].mbuf); > + txep[i].mbuf = NULL; > if (m != NULL) > rte_mempool_put(m->pool, m); > } > -- > 2.9.5