[PATCH 02/10] net/iavf: permit secondary process Rx path selection

Ciara Loftus
2026-02-05T10:30:43Z

Commit 3f59c3d97a89 ("net/iavf: use same Rx path across processes")
changed the way that secondary processes selected their Rx burst
function. Instead of letting secondary processes select their own
function, they now used the function selected by the primary process.
However, the primary process only selects the function at device start,
so if the primary process hadn't started the device by the time the
secondary process was selecting its Rx burst function, the secondary
process would not select the correct function.

This commit addresses this issue by allowing the secondary process to
select the path if the device has not been started yet.

Fixes: 3f59c3d97a89 ("net/iavf: use same Rx path across processes")
Cc: stable@dpdk.org

Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
---
drivers/net/intel/iavf/iavf_rxtx.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/intel/iavf/iavf_rxtx.c b/drivers/net/intel/iavf/iavf_rxtx.c
index 4b763627bc..bca80eccfa 100644
--- a/drivers/net/intel/iavf/iavf_rxtx.c
+++ b/drivers/net/intel/iavf/iavf_rxtx.c
@@ -4173,8 +4173,8 @@ iavf_set_rx_function(struct rte_eth_dev *dev)
.simd_width = RTE_VECT_SIMD_DISABLED,
};

- /* The primary process selects the rx path for all processes. */
- if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+ /* If the device has started the function has already been selected. */
+ if (dev->data->dev_started)
goto out;

for (i = 0; i < dev->data->nb_rx_queues; i++) {
--
2.43.0