vcl: fix worker cleanup cb function 15/31915/2
authorFlorin Coras <fcoras@cisco.com>
Wed, 7 Apr 2021 07:16:37 +0000 (00:16 -0700)
committerFlorin Coras <florin.coras@gmail.com>
Wed, 7 Apr 2021 14:21:05 +0000 (14:21 +0000)
Type: fix

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

src/vcl/vcl_private.c

index d6d7381..eb01d1c 100644 (file)
@@ -138,8 +138,14 @@ vcl_worker_cleanup (vcl_worker_t * wrk, u8 notify_vpp)
 static void
 vcl_worker_cleanup_cb (void *arg)
 {
-  vcl_worker_t *wrk = vcl_worker_get_current ();
-  u32 wrk_index = wrk->wrk_index;
+  vcl_worker_t *wrk;
+  u32 wrk_index;
+
+  wrk_index = vcl_get_worker_index ();
+  wrk = vcl_worker_get_if_valid (wrk_index);
+  if (!wrk)
+    return;
+
   vcl_worker_cleanup (wrk, 1 /* notify vpp */ );
   vcl_set_worker_index (~0);
   VDBG (0, "cleaned up worker %u", wrk_index);