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: sta...@dpdk.org Signed-off-by: Kaiwen Deng <kaiwenx.d...@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