[PATCH v2 10/10] net/cpfl: permit secondary process Tx path selection

Ciara Loftus
2026-02-05T12:47:41Z

Commit 6970745698b9 ("net/cpfl: use common Tx path selection
infrastructure") changed the way that secondary processes selected their
Tx 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 Tx 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: 6970745698b9 ("net/cpfl: use common Tx path selection infrastructure")

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

diff --git a/drivers/net/intel/cpfl/cpfl_rxtx.c b/drivers/net/intel/cpfl/cpfl_rxtx.c
index 7da360d56e..b7d62a1379 100644
--- a/drivers/net/intel/cpfl/cpfl_rxtx.c
+++ b/drivers/net/intel/cpfl/cpfl_rxtx.c
@@ -1493,8 +1493,8 @@ cpfl_set_tx_function(struct rte_eth_dev *dev)
.single_queue = (vport->txq_model == VIRTCHNL2_QUEUE_MODEL_SINGLE)
};

- /* The primary process selects the tx 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;

#ifdef RTE_ARCH_X86
--
2.43.0