[dpdk-stable] [PATCH 1/6] net/null: fix secondary burst function selection
Ferruh Yigit
ferruh.yigit at intel.com
Mon Mar 2 18:36:40 CET 2020
Secondary process uses the primary process device and while setting the
Rx/Tx functions it uses the device arguments from the secondary process
instead of the primary ones.
This may cause primary and secondary process use different Rx/Tx
functions unintentionally.
Fixes: bccc77a6a74a ("net/null: fix multi-process Rx and Tx")
Cc: stable at dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
---
Cc: yasufum.o at gmail.com
---
drivers/net/null/rte_eth_null.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c
index 025b73acb..87a29b853 100644
--- a/drivers/net/null/rte_eth_null.c
+++ b/drivers/net/null/rte_eth_null.c
@@ -584,6 +584,7 @@ rte_pmd_null_probe(struct rte_vdev_device *dev)
PMD_LOG(INFO, "Initializing pmd_null for %s", name);
if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
+ struct pmd_internals *internals;
eth_dev = rte_eth_dev_attach_secondary(name);
if (!eth_dev) {
PMD_LOG(ERR, "Failed to probe %s", name);
@@ -592,7 +593,8 @@ rte_pmd_null_probe(struct rte_vdev_device *dev)
/* TODO: request info from primary to set up Rx and Tx */
eth_dev->dev_ops = &ops;
eth_dev->device = &dev->device;
- if (packet_copy) {
+ internals = eth_dev->data->dev_private;
+ if (internals->packet_copy) {
eth_dev->rx_pkt_burst = eth_null_copy_rx;
eth_dev->tx_pkt_burst = eth_null_copy_tx;
} else {
--
2.24.1
More information about the stable
mailing list