event/dpaa: fix portal allocation
authorNipun Gupta <nipun.gupta@nxp.com>
Mon, 5 Feb 2018 05:21:57 +0000 (10:51 +0530)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 5 Feb 2018 23:43:32 +0000 (00:43 +0100)
Checking if portal has been allocated is now required at the
caller of rte_dpaa_portal_init() API. This patch adds check
in the dpaa eventdev driver.

Fixes: 5d944582d028 ("bus/dpaa: check portal presence in the caller function")

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
drivers/event/dpaa/dpaa_eventdev.c

index 7360fad..0006801 100644 (file)
@@ -112,11 +112,13 @@ dpaa_event_dequeue_burst(void *port, struct rte_event ev[],
        struct dpaa_port *portal = (struct dpaa_port *)port;
        struct rte_mbuf *mbuf;
 
-       /* Affine current thread context to a qman portal */
-       ret = rte_dpaa_portal_init((void *)0);
-       if (ret) {
-               DPAA_EVENTDEV_ERR("Unable to initialize portal");
-               return ret;
+       if (unlikely(!RTE_PER_LCORE(dpaa_io))) {
+               /* Affine current thread context to a qman portal */
+               ret = rte_dpaa_portal_init((void *)0);
+               if (ret) {
+                       DPAA_EVENTDEV_ERR("Unable to initialize portal");
+                       return ret;
+               }
        }
 
        if (unlikely(!portal->is_port_linked)) {