interface: update tx queue runtime if vector size changes 37/32337/2
authorDamjan Marion <damarion@cisco.com>
Fri, 14 May 2021 13:48:52 +0000 (15:48 +0200)
committerFlorin Coras <florin.coras@gmail.com>
Fri, 14 May 2021 15:45:05 +0000 (15:45 +0000)
Fixes issue which causes crash in case when VPP only runs with main thread.

Type: fix
Change-Id: Ia0ca973bb7e7ff81f15b37764ae248e2502bdcec
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/vnet/interface/runtime.c

index e318e43..7ec1049 100644 (file)
@@ -169,7 +169,11 @@ vnet_hw_if_update_runtime_data (vnet_main_t *vnm, u32 hw_if_index)
 
   new_out_runtimes =
     vec_dup_aligned (hi->output_node_thread_runtimes, CLIB_CACHE_LINE_BYTES);
-  vec_validate_aligned (new_out_runtimes, n_threads, CLIB_CACHE_LINE_BYTES);
+  vec_validate_aligned (new_out_runtimes, n_threads - 1,
+                       CLIB_CACHE_LINE_BYTES);
+
+  if (vec_len (hi->output_node_thread_runtimes) != vec_len (new_out_runtimes))
+    something_changed_on_tx = 1;
 
   for (int i = 0; i < vec_len (hi->tx_queue_indices); i++)
     {