From 29e70a6eb1dd0de76be9e46c1488a3e7885e904b Mon Sep 17 00:00:00 2001 From: Dave Barach Date: Fri, 5 Jun 2020 09:42:50 -0400 Subject: fib: fix multiple dpo pool expand cases Add dpo_pool_barrier_sync/release, use them to clean up thread-unsafe pool expansion cases. Type: fix Signed-off-by: Dave Barach Change-Id: I09299124a25f8d541e3bb4b75375568990e9b911 (cherry picked from commit 26d890eb4b1ab19fea4d2d02bfc6dc89d2c1b771) --- src/vnet/dpo/classify_dpo.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/vnet/dpo/classify_dpo.c') diff --git a/src/vnet/dpo/classify_dpo.c b/src/vnet/dpo/classify_dpo.c index 08fab83f2ee..bc536a10266 100644 --- a/src/vnet/dpo/classify_dpo.c +++ b/src/vnet/dpo/classify_dpo.c @@ -26,8 +26,13 @@ static classify_dpo_t * classify_dpo_alloc (void) { classify_dpo_t *cd; + vlib_main_t *vm; + u8 did_barrier_sync; + dpo_pool_barrier_sync (vm, classify_dpo_pool, did_barrier_sync); pool_get_aligned(classify_dpo_pool, cd, CLIB_CACHE_LINE_BYTES); + dpo_pool_barrier_release (vm, did_barrier_sync); + clib_memset(cd, 0, sizeof(*cd)); return (cd); -- cgit 1.2.3-korg