Fixes ASAN crash after fib update with multiple
workers
Type: fix
Change-Id: I3d0112b608ffa5b5559311c6d494d27d6c1db511
Signed-off-by: Vladimir Zhigulin <[email protected]>
{
dpo_id_t *buckets;
int i;
+ u8 need_barrier_sync;
buckets = load_balance_get_buckets(lb);
fib_urpf_list_unlock(lb->lb_urpf);
load_balance_map_unlock(lb->lb_map);
+ need_barrier_sync = pool_put_will_expand (load_balance_pool, lb);
+ if (PREDICT_FALSE (need_barrier_sync))
+ vlib_worker_thread_barrier_sync (vlib_get_main());
+
pool_put(load_balance_pool, lb);
+
+ if (PREDICT_FALSE (need_barrier_sync))
+ vlib_worker_thread_barrier_release (vlib_get_main());
}
static void