diff options
-rw-r--r-- | src/plugins/crypto_sw_scheduler/main.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/plugins/crypto_sw_scheduler/main.c b/src/plugins/crypto_sw_scheduler/main.c index b32c8ae0594..73a158e86b2 100644 --- a/src/plugins/crypto_sw_scheduler/main.c +++ b/src/plugins/crypto_sw_scheduler/main.c @@ -455,7 +455,9 @@ crypto_sw_scheduler_dequeue (vlib_main_t *vm, u32 *nb_elts_processed, crypto_sw_scheduler_queue_t *current_queue = 0; u32 tail, head; u8 found = 0; + u8 recheck_queues = 1; +run_next_queues: /* get a pending frame to process */ if (ptd->self_crypto_enabled) { @@ -565,6 +567,11 @@ crypto_sw_scheduler_dequeue (vlib_main_t *vm, u32 *nb_elts_processed, return f; } + if (!found && recheck_queues) + { + recheck_queues = 0; + goto run_next_queues; + } return 0; } |