From b385b95c106123ab095b3bd459b7cbc91089b826 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Wed, 12 Jan 2022 14:09:01 +0100 Subject: [PATCH] dpdk: postpone updating runtime data This prevents crash due to worker tread accessing device data while device vector is growing. Type: fix Change-Id: I5cf9f53ddbe97fe52db8fd431ea7c0e480f3d4bc Signed-off-by: Damjan Marion --- src/plugins/dpdk/device/init.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c index da7a12367ff..a515bca359d 100644 --- a/src/plugins/dpdk/device/init.c +++ b/src/plugins/dpdk/device/init.c @@ -552,7 +552,6 @@ dpdk_lib_init (dpdk_main_t * dm) vnm, xd->hw_if_index, q, VNET_HW_IF_RXQ_THREAD_ANY); } - vnet_hw_if_update_runtime_data (vnm, xd->hw_if_index); /*Get vnet hardware interface */ hi = vnet_get_hw_interface (vnm, xd->hw_if_index); @@ -597,6 +596,9 @@ dpdk_lib_init (dpdk_main_t * dm) format_dpdk_device_errors, xd); } + for (int i = 0; i < vec_len (dm->devices); i++) + vnet_hw_if_update_runtime_data (vnm, dm->devices[i].hw_if_index); + return 0; } -- 2.16.6