[PATCH v4] net/iavf: fix mbuf release API selection

Kaiwen Deng kaiwenx.deng at intel.com
Thu Nov 9 05:58:36 CET 2023


When AVX2 is forcibly selected and outer checksum
offload is configured, the basic Tx path will be
selected. Also, the txq mbuf release API is incorrectly
set to iavf_tx_queue_release_mbufs_sse. This causes
coredump.

This commit selects release_txq_mbufs to releasing
txq mbufs when selecting the basic Tx path.

Fixes: 22f1e7608ebc ("net/iavf: fix AVX2 Tx selection")
Cc: stable at dpdk.org

Signed-off-by: Kaiwen Deng <kaiwenx.deng at intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 45f638c1d2..f19aa14646 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -4018,11 +4018,9 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
 				PMD_DRV_LOG(DEBUG, "Using AVX2 Vector Tx (port %d).",
 					    dev->data->port_id);
 			} else if (check_ret == IAVF_VECTOR_CTX_OFFLOAD_PATH) {
-				dev->tx_pkt_burst = iavf_xmit_pkts;
-				dev->tx_pkt_prepare = iavf_prep_pkts;
 				PMD_DRV_LOG(DEBUG,
-					"AVX2 does not support outer checksum offload, using Basic Tx (port %d).",
-					dev->data->port_id);
+					"AVX2 does not support outer checksum offload.");
+				goto normal;
 			} else {
 				dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx2_offload;
 				dev->tx_pkt_prepare = iavf_prep_pkts;
-- 
2.34.1



More information about the stable mailing list