tle_tcp_proces: fix the issue when strem can sit in the txs queue forever. 78/7078/1
authorKonstantin Ananyev <konstantin.ananyev@intel.com>
Mon, 5 Jun 2017 17:05:01 +0000 (18:05 +0100)
committerKonstantin Ananyev <konstantin.ananyev@intel.com>
Fri, 9 Jun 2017 10:13:49 +0000 (11:13 +0100)
Change-Id: I313f048fc0888d661f8b0e34af6256afc516670a
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/libtle_l4p/tcp_rxtx.c

index ff39f32..7429bf0 100644 (file)
@@ -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);
        }