net/i40e: fix rearm check in AVX2 Rx
authorHarry van Haaren <harry.van.haaren@intel.com>
Mon, 30 Jul 2018 17:34:19 +0000 (18:34 +0100)
committerQi Zhang <qi.z.zhang@intel.com>
Wed, 1 Aug 2018 00:41:29 +0000 (02:41 +0200)
commitf5dd9a88dedd54fa89a25c9a10d39f3abe31e5c2
tree5e468410ba1aa171fb571f6298db10e3bd035141
parentecfbec5ac6c2663c40222603b11cfa0e6793d75a
net/i40e: fix rearm check in AVX2 Rx

This commit fixes an infinite loop bug that could occur
if the i40e AVX2 driver is used, and high traffic rates
cause the mempool from which the rxq pulls mbufs to become
empty.

The result would be an infinite loop of checking if we
should perform an rx rearm, calling the function and an
error return due the the mempool being emtpy.

The fix is to align the code in the AVX2 driver with the
SSE driver, where an if() is used instead of a while(),
allowing the thread to return from i40e rx function even
if the mempool is empty.

Fixes: dafadd73762e ("net/i40e: add AVX2 Rx function")
Cc: stable@dpdk.org
Reported-by: David Coyle <david.coyle@intel.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Brendan Ryan <brendan.ryan@intel.com>
Tested-by: David Coyle <david.coyle@intel.com>
drivers/net/i40e/i40e_rxtx_vec_avx2.c