net/softnic: do not dereference global config struct
authorDavid Marchand <david.marchand@redhat.com>
Wed, 15 May 2019 07:54:20 +0000 (09:54 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 29 May 2019 22:29:09 +0000 (00:29 +0200)
Prefer the existing apis rather than direct access the configuration
structure.

Fixes: a958a5c07f4b ("net/softnic: support service cores")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
drivers/net/softnic/rte_eth_softnic_thread.c

index 855408e..d610b16 100644 (file)
@@ -99,17 +99,12 @@ softnic_thread_init(struct pmd_internals *softnic)
 static inline int
 thread_is_valid(struct pmd_internals *softnic, uint32_t thread_id)
 {
-       struct rte_config *cfg = rte_eal_get_configuration();
-       enum rte_lcore_role_t role;
-
-       if ((thread_id >= RTE_MAX_LCORE) ||
-               (thread_id == cfg->master_lcore))
+       if (thread_id == rte_get_master_lcore())
                return 0; /* FALSE */
 
-       role = cfg->lcore_role[thread_id];
-
-       if ((softnic->params.sc && (role == ROLE_SERVICE)) ||
-               (!softnic->params.sc && (role == ROLE_RTE)))
+       if (softnic->params.sc && rte_lcore_has_role(thread_id, ROLE_SERVICE))
+               return 1; /* TRUE */
+       if (!softnic->params.sc && rte_lcore_has_role(thread_id, ROLE_RTE))
                return 1; /* TRUE */
 
        return 0; /* FALSE */