net/tap: fix blocked Rx packets
authorMarcin Smoczynski <marcinx.smoczynski@intel.com>
Mon, 23 Sep 2019 13:22:47 +0000 (15:22 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 23 Oct 2019 14:43:08 +0000 (16:43 +0200)
commitd070c3413164e3f8f7fa4c4325d7df50a8275f39
tree8f8f4d3bbc04d089b5598257f09a718c57f45374
parentea7768b5bba8a8a21355c06f6fc5f51f3aafc4a0
net/tap: fix blocked Rx packets

When OS sends more packets than are being read with a single
'rte_eth_rx_burst' call, rx packets are getting stucked in the tap pmd
and are unable to receive, because trigger_seen is getting updated
and consecutive calls are not getting any packets.

Do not update trigger_seen unless less than a max number of packets were
received allowing next call to receive the rest.

Remove unnecessary compiler barrier.

Fixes: a0d8e807d9de ("net/tap: add Rx trigger")
Cc: stable@dpdk.org
Signed-off-by: Marcin Smoczynski <marcinx.smoczynski@intel.com>
Tested-by: Mariusz Drost <mariuszx.drost@intel.com>
Tested-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Reviewed-by: Keith Wiles <keith.wiles@intel.com>
drivers/net/tap/rte_eth_tap.c