summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2023-06-05 10:24:56 -0700
committerAndrew Yourtchenko <ayourtch@gmail.com>2023-06-13 12:49:53 +0000
commit16912d23abaa652ac6fe00b1af9b4f09c728b3b1 (patch)
treef8b017340cdbedb45f8b07c1adbc9dd3c68d2441
parentf7687220e06f30105d4318679bec3d2ea04189c6 (diff)
vcl: avoid duplicate tx events with epoll lt
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ic6436426ead561e47fb77ed9a95afbd85f2998ae (cherry picked from commit acecd0d9c225d5f87f2a518854c7eb7af319ef96)
-rw-r--r--src/vcl/vppcom.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c
index 9e7af0a3a50..474670e7565 100644
--- a/src/vcl/vppcom.c
+++ b/src/vcl/vppcom.c
@@ -3058,7 +3058,8 @@ vcl_epoll_wait_handle_mq_event (vcl_worker_t * wrk, session_event_t * e,
svm_fifo_reset_has_deq_ntf (vcl_session_is_ct (s) ? s->ct_tx_fifo :
s->tx_fifo);
session_events = s->vep.ev.events;
- if (!(EPOLLOUT & session_events))
+ if (!(EPOLLOUT & session_events) ||
+ (s->vep.lt_next != VCL_INVALID_SESSION_INDEX))
break;
add_event = 1;
events[*num_ev].events = EPOLLOUT;