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: [email protected]
Signed-off-by: Kaiwen Deng <[email protected]>
---
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