aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libtle_l4p/tcp_rxtx.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/libtle_l4p/tcp_rxtx.c b/lib/libtle_l4p/tcp_rxtx.c
index ff39f32..7429bf0 100644
--- a/lib/libtle_l4p/tcp_rxtx.c
+++ b/lib/libtle_l4p/tcp_rxtx.c
@@ -2417,11 +2417,12 @@ tle_tcp_process(struct tle_ctx *ctx, uint32_t num)
for (i = 0; i != k; i++) {
s = rs[i];
- if (rwl_try_acquire(&s->tx.use) > 0 &&
- rte_atomic32_read(&s->tx.arm) > 0) {
- rte_atomic32_set(&s->tx.arm, 0);
+ rte_atomic32_set(&s->tx.arm, 0);
+
+ if (rwl_try_acquire(&s->tx.use) > 0)
tx_stream(s, tms);
- }
+ else
+ txs_enqueue(s->s.ctx, s);
rwl_release(&s->tx.use);
}