net/dpaa2: fix device init for secondary process
authorShreyansh Jain <shreyansh.jain@nxp.com>
Fri, 11 Jan 2019 12:24:27 +0000 (12:24 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 14 Jan 2019 16:44:29 +0000 (17:44 +0100)
In order to support I/O from secondary process, the
burst APIs and OPS APIs shall be mapped/plugged.

Fixes: c147eae01cb3 ("net/dpaa2: introduce NXP DPAA2 driver")
Cc: stable@dpdk.org
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
drivers/net/dpaa2/dpaa2_ethdev.c

index 8d4ea1b..39f85ae 100644 (file)
@@ -1918,8 +1918,15 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
        PMD_INIT_FUNC_TRACE();
 
        /* For secondary processes, the primary has done all the work */
-       if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+       if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
+               /* In case of secondary, only burst and ops API need to be
+                * plugged.
+                */
+               eth_dev->dev_ops = &dpaa2_ethdev_ops;
+               eth_dev->rx_pkt_burst = dpaa2_dev_prefetch_rx;
+               eth_dev->tx_pkt_burst = dpaa2_dev_tx;
                return 0;
+       }
 
        dpaa2_dev = container_of(dev, struct rte_dpaa2_device, device);