net/mvpp2: fix non-EAL thread support
authorDavid Marchand <david.marchand@redhat.com>
Tue, 16 Jun 2020 09:47:00 +0000 (11:47 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 30 Jun 2020 12:52:30 +0000 (14:52 +0200)
Caught by code inspection, for a non-EAL thread identified with
rte_lcore_id() == LCORE_ID_ANY, the code currently arbitrarily uses
lcore 0 while there is no guarantee this lcore is used.

Fixes: 3588aaa68eab ("net/mrvl: fix HIF objects allocation")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Liron Himi <lironh@marvell.com>
drivers/net/mvpp2/mrvl_ethdev.c

index b98b1fd..9037274 100644 (file)
@@ -816,7 +816,7 @@ mrvl_flush_bpool(struct rte_eth_dev *dev)
        unsigned int core_id = rte_lcore_id();
 
        if (core_id == LCORE_ID_ANY)
-               core_id = 0;
+               core_id = rte_get_master_lcore();
 
        hif = mrvl_get_hif(priv, core_id);
 
@@ -1620,7 +1620,7 @@ mrvl_fill_bpool(struct mrvl_rxq *rxq, int num)
 
        core_id = rte_lcore_id();
        if (core_id == LCORE_ID_ANY)
-               core_id = 0;
+               core_id = rte_get_master_lcore();
 
        hif = mrvl_get_hif(rxq->priv, core_id);
        if (!hif)
@@ -1770,7 +1770,7 @@ mrvl_rx_queue_release(void *rxq)
        unsigned int core_id = rte_lcore_id();
 
        if (core_id == LCORE_ID_ANY)
-               core_id = 0;
+               core_id = rte_get_master_lcore();
 
        if (!q)
                return;