net/netvsc: avoid possible live lock
authorStephen Hemminger <stephen@networkplumber.org>
Tue, 31 Mar 2020 17:14:04 +0000 (10:14 -0700)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 21 Apr 2020 11:57:06 +0000 (13:57 +0200)
Since the ring buffer with host is shared for both transmit
completions and receive packets, it is possible that transmitter
could get starved if receive ring gets full.

Better to process all outstanding events which frees up transmit
buffer slots, even if means dropping some packets.

Fixes: 7e6c82430702 ("net/netvsc: avoid over filling Rx descriptor ring")
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
drivers/net/netvsc/hn_rxtx.c

index cbdfcc628b757489b43c1b1ab69efd7a623bb525..19f00a05285fa7f4ec70d4859d4fa2b7caa945aa 100644 (file)
@@ -1032,9 +1032,6 @@ retry:
 
                if (tx_limit && tx_done >= tx_limit)
                        break;
-
-               if (rxq->rx_ring && rte_ring_full(rxq->rx_ring))
-                       break;
        }
 
        if (bytes_read > 0)