From: Ivan Malov Date: Wed, 18 Oct 2017 09:39:57 +0000 (+0100) Subject: net/sfc: fix Tx reap behaviour on port stop on EF10 datapath X-Git-Tag: spdx-start~1158 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=d112a3ecb741ec8ccb3535246d84c76bc4792a9e;p=dpdk.git net/sfc: fix Tx reap behaviour on port stop on EF10 datapath Tx reap mechanism on EF10 native datapath was altered by one of the recent patches to introduce performance optimisations using the common technique of freeing mbuf segments in bulks. From this perspective, the way of associating SW descriptors with individual mbuf segments rather than with whole packets was adopted as a key requirement for the entire optimisation. However, only the fast path reap function was amended to fit the new scheme whilst the corresponding function on the port stop path was left intact by mistake. This implies incorrect usage of rte_pktmbuf_free() with regard to separate segments rather than calling rte_pktmbuf_free_seg() and must be fixed. Fixes: d321954343c8 ("net/sfc: free mbufs in bulks on EF10 native Tx reap") Signed-off-by: Ivan Malov Signed-off-by: Andrew Rybchenko Reviewed-by: Andy Moreton --- diff --git a/drivers/net/sfc/sfc_ef10_tx.c b/drivers/net/sfc/sfc_ef10_tx.c index 9047b3e46e..167c91d665 100644 --- a/drivers/net/sfc/sfc_ef10_tx.c +++ b/drivers/net/sfc/sfc_ef10_tx.c @@ -602,7 +602,7 @@ sfc_ef10_tx_qreap(struct sfc_dp_txq *dp_txq) txd = &txq->sw_ring[completed & txq->ptr_mask]; if (txd->mbuf != NULL) { - rte_pktmbuf_free(txd->mbuf); + rte_pktmbuf_free_seg(txd->mbuf); txd->mbuf = NULL; } }