From ba8c540c52fc83237dff2eb87c259037da448e39 Mon Sep 17 00:00:00 2001 From: Dave Barach Date: Fri, 18 Mar 2016 09:48:16 -0400 Subject: Fix longstanding next-frame clone bug Do not propagate flags into cloned vlib_next_frame_t's. vlib_next_frame_init(...) sets nf->frame_index to ~0. If it turns out that the original flags include VLIB_FRAME_IS_ALLOCATED, the wheels fall off. And so on. Change-Id: I8de18653acfcc8eb20cee36f4eb5b9e82234f21b Signed-off-by: Dave Barach --- vlib/vlib/threads.c | 6 ------ 1 file changed, 6 deletions(-) (limited to 'vlib') diff --git a/vlib/vlib/threads.c b/vlib/vlib/threads.c index 2fa5b4f6..15eb9599 100644 --- a/vlib/vlib/threads.c +++ b/vlib/vlib/threads.c @@ -631,13 +631,10 @@ static clib_error_t * start_workers (vlib_main_t * vm) { vlib_next_frame_t *nf = &nm_clone->next_frames[j]; u32 save_node_runtime_index; - u32 save_flags; save_node_runtime_index = nf->node_runtime_index; - save_flags = nf->flags; vlib_next_frame_init (nf); nf->node_runtime_index = save_node_runtime_index; - nf->flags = save_flags; } /* fork the frame dispatch queue */ @@ -846,13 +843,10 @@ void vlib_worker_thread_node_runtime_update(void) { vlib_next_frame_t *nf = &nm_clone->next_frames[j]; u32 save_node_runtime_index; - u32 save_flags; save_node_runtime_index = nf->node_runtime_index; - save_flags = nf->flags; vlib_next_frame_init (nf); nf->node_runtime_index = save_node_runtime_index; - nf->flags = save_flags; } old_nodes_clone = nm_clone->nodes; -- cgit 1.2.3-korg