diff options
Diffstat (limited to 'lib/libtle_l4p/tcp_rxtx.c')
-rw-r--r-- | lib/libtle_l4p/tcp_rxtx.c | 9 |
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); } |