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 <dave@barachs.net>
This commit is contained in:

committed by
Gerrit Code Review

parent
cb656303df
commit
ba8c540c52
@ -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;
|
||||
|
Reference in New Issue
Block a user