session: fix unlisten rpc barrier release 94/33194/4
authorFlorin Coras <fcoras@cisco.com>
Wed, 21 Jul 2021 02:08:12 +0000 (19:08 -0700)
committerDave Barach <openvpp@barachs.net>
Wed, 21 Jul 2021 23:41:16 +0000 (23:41 +0000)
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I9301fbbcd611033b4b6ad5313edbc66840f5bb3a

src/vnet/session/session_node.c

index 8817b08..b8b5ce2 100644 (file)
@@ -401,8 +401,6 @@ session_mq_unlisten_rpc (session_unlisten_msg_t *mp)
   sh = mp->handle;
   context = mp->context;
 
-  vlib_worker_thread_barrier_sync (vm);
-
   app = application_lookup (mp->client_index);
   if (!app)
     return;
@@ -411,15 +409,18 @@ session_mq_unlisten_rpc (session_unlisten_msg_t *mp)
   a->app_index = app->app_index;
   a->handle = sh;
   a->wrk_map_index = mp->wrk_index;
+
+  vlib_worker_thread_barrier_sync (vm);
+
   if ((rv = vnet_unlisten (a)))
     clib_warning ("unlisten returned: %d", rv);
 
+  vlib_worker_thread_barrier_release (vm);
+
   app_wrk = application_get_worker (app, a->wrk_map_index);
   if (!app_wrk)
     return;
 
-  vlib_worker_thread_barrier_release (vm);
-
   mq_send_unlisten_reply (app_wrk, sh, context, rv);
   clib_mem_free (mp);
 }