avoid using thread local storage for thread index
[vpp.git] / src / plugins / memif / device.c
index c70a4ea..5c8eb3f 100644 (file)
@@ -46,7 +46,7 @@ static __clib_unused char *memif_tx_func_error_strings[] = {
 #undef _
 };
 
-#ifndef CLIB_MULTIARCH_VARIANT
+#ifndef CLIB_MARCH_VARIANT
 u8 *
 format_memif_device_name (u8 * s, va_list * args)
 {
@@ -409,7 +409,7 @@ CLIB_MULTIARCH_FN (memif_interface_tx) (vlib_main_t * vm,
   vnet_interface_output_runtime_t *rund = (void *) node->runtime_data;
   memif_if_t *mif = pool_elt_at_index (nm->interfaces, rund->dev_instance);
   memif_queue_t *mq;
-  u32 thread_index = vlib_get_thread_index ();
+  u32 thread_index = vm->thread_index;
   memif_per_thread_data_t *ptd = vec_elt_at_index (memif_main.per_thread_data,
                                                   thread_index);
   u8 tx_queues = vec_len (mif->tx_queues);
@@ -500,7 +500,7 @@ memif_subif_add_del_function (vnet_main_t * vnm,
   return 0;
 }
 
-#ifndef CLIB_MULTIARCH_VARIANT
+#ifndef CLIB_MARCH_VARIANT
 /* *INDENT-OFF* */
 VNET_DEVICE_CLASS (memif_device_class) = {
   .name = "memif",
@@ -521,7 +521,7 @@ VNET_DEVICE_CLASS (memif_device_class) = {
 vlib_node_function_t __clib_weak memif_interface_tx_avx512;
 vlib_node_function_t __clib_weak memif_interface_tx_avx2;
 static void __clib_constructor
-dpdk_interface_tx_multiarch_select (void)
+memif_interface_tx_multiarch_select (void)
 {
   if (memif_interface_tx_avx512 && clib_cpu_supports_avx512f ())
     memif_device_class.tx_function = memif_interface_tx_avx512;