patch 'net/iavf: remove reset of Tx prepare function pointer' has been queued to stable release 23.11.4

Xueming Li xuemingl at nvidia.com
Tue Feb 18 13:34:11 CET 2025


Hi,

FYI, your patch has been queued to stable release 23.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
Please shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=23.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=f5753bf08752b3d848a30f20f956ee734425560c

Thanks.

Xueming Li <xuemingl at nvidia.com>

---
>From f5753bf08752b3d848a30f20f956ee734425560c Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson at intel.com>
Date: Fri, 13 Dec 2024 14:33:19 +0000
Subject: [PATCH] net/iavf: remove reset of Tx prepare function pointer
Cc: Xueming Li <xuemingl at nvidia.com>

[ upstream commit 41be96c907607bc709654f71901913f1534264f8 ]

The iavf driver only contains a single Tx prepare function, so when
selecting the Tx path, there is no need to reset and reassign the
function pointer in the ethdev structure. This fixes an issue where the
pointer was reset to NULL, but never assigned back later on function
selection.

Fixes: 5712bf9d6e14 ("net/iavf: add Tx AVX2 offload path")
Fixes: 08eb6a9cc2e1 ("net/iavf: fix Tx L4 checksum")
Fixes: 4f8259df563a ("net/iavf: enable Tx outer checksum offload on AVX512")

Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin at intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 5fbc581b95..ced1c21c24 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -4010,7 +4010,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
 		if (!use_sse && !use_avx2 && !use_avx512)
 			goto normal;

-		dev->tx_pkt_prepare = NULL;
 		if (use_sse) {
 			PMD_DRV_LOG(DEBUG, "Using Vector Tx (port %d).",
 				    dev->data->port_id);
@@ -4027,7 +4026,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
 				goto normal;
 			} else {
 				dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx2_offload;
-				dev->tx_pkt_prepare = iavf_prep_pkts;
 				PMD_DRV_LOG(DEBUG, "Using AVX2 OFFLOAD Vector Tx (port %d).",
 					    dev->data->port_id);
 			}
@@ -4040,12 +4038,10 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
 					    dev->data->port_id);
 			} else if (check_ret == IAVF_VECTOR_OFFLOAD_PATH) {
 				dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx512_offload;
-				dev->tx_pkt_prepare = iavf_prep_pkts;
 				PMD_DRV_LOG(DEBUG, "Using AVX512 OFFLOAD Vector Tx (port %d).",
 					    dev->data->port_id);
 			} else {
 				dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx512_ctx_offload;
-				dev->tx_pkt_prepare = iavf_prep_pkts;
 				PMD_DRV_LOG(DEBUG, "Using AVX512 CONTEXT OFFLOAD Vector Tx (port %d).",
 					    dev->data->port_id);
 			}
@@ -4078,7 +4074,6 @@ normal:
 	PMD_DRV_LOG(DEBUG, "Using Basic Tx callback (port=%d).",
 		    dev->data->port_id);
 	dev->tx_pkt_burst = iavf_xmit_pkts;
-	dev->tx_pkt_prepare = iavf_prep_pkts;

 	if (no_poll_on_link_down) {
 		adapter->tx_pkt_burst = dev->tx_pkt_burst;
--
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-18 19:39:01.320662928 +0800
+++ 0016-net-iavf-remove-reset-of-Tx-prepare-function-pointer.patch	2025-02-18 19:39:00.448244079 +0800
@@ -1 +1 @@
-From 41be96c907607bc709654f71901913f1534264f8 Mon Sep 17 00:00:00 2001
+From f5753bf08752b3d848a30f20f956ee734425560c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit 41be96c907607bc709654f71901913f1534264f8 ]
@@ -15 +17,0 @@
-Cc: stable at dpdk.org
@@ -20,2 +22,2 @@
- drivers/net/iavf/iavf_rxtx.c | 6 ------
- 1 file changed, 6 deletions(-)
+ drivers/net/iavf/iavf_rxtx.c | 5 -----
+ 1 file changed, 5 deletions(-)
@@ -24 +26 @@
-index f7df5f21f2..457b5a5655 100644
+index 5fbc581b95..ced1c21c24 100644
@@ -27 +29 @@
-@@ -4173,7 +4173,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
+@@ -4010,7 +4010,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
@@ -35 +37 @@
-@@ -4190,7 +4189,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
+@@ -4027,7 +4026,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
@@ -38 +40 @@
- 				tx_burst_type = IAVF_TX_AVX2_OFFLOAD;
+ 				dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx2_offload;
@@ -43 +45 @@
-@@ -4203,17 +4201,14 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
+@@ -4040,12 +4038,10 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
@@ -46 +48 @@
- 				tx_burst_type = IAVF_TX_AVX512_OFFLOAD;
+ 				dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx512_offload;
@@ -50,5 +51,0 @@
- 			} else if (check_ret == IAVF_VECTOR_CTX_PATH) {
- 				tx_burst_type = IAVF_TX_AVX512_CTX;
--				dev->tx_pkt_prepare = iavf_prep_pkts;
- 				PMD_DRV_LOG(DEBUG, "Using AVX512 CONTEXT Vector Tx (port %d).",
- 						dev->data->port_id);
@@ -56 +53 @@
- 				tx_burst_type = IAVF_TX_AVX512_CTX_OFFLOAD;
+ 				dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx512_ctx_offload;
@@ -61 +58 @@
-@@ -4251,7 +4246,6 @@ normal:
+@@ -4078,7 +4074,6 @@ normal:
@@ -64 +61 @@
- 	tx_burst_type = IAVF_TX_DEFAULT;
+ 	dev->tx_pkt_burst = iavf_xmit_pkts;
@@ -68 +65 @@
- 		adapter->tx_burst_type = tx_burst_type;
+ 		adapter->tx_pkt_burst = dev->tx_pkt_burst;


More information about the stable mailing list