summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett Creeley <brett.creeley@intel.com>2020-02-06 01:20:02 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-03-05 16:45:11 +0100
commitc332e753426e8c5227dc25bd74243b2e50e5a1f5 (patch)
treebd841a0b2838c7bb21c394ca58739601d336d308
parent7acf371968bbb24af5cd1331412dcfb3eeaeecd6 (diff)
ice: Don't allow same value for Rx tail to be written twice
[ Upstream commit 168983a8e19b89efd175661e53faa6246be363a0 ] Currently we compare the value we are about to write to the Rx tail register with the previous value of next_to_use. The problem with this is we only write tail on 8 descriptor boundaries, but next_to_use is updated whenever we clean Rx descriptors. Fix this by comparing the value we are about to write to tail with the previously written tail value. This will prevent duplicate Rx tail bumps. Signed-off-by: Brett Creeley <brett.creeley@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/net/ethernet/intel/ice/ice_txrx_lib.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_txrx_lib.c b/drivers/net/ethernet/intel/ice/ice_txrx_lib.c
index 35bbc4ff603c..6da048a6ca7c 100644
--- a/drivers/net/ethernet/intel/ice/ice_txrx_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_txrx_lib.c
@@ -10,7 +10,7 @@
*/
void ice_release_rx_desc(struct ice_ring *rx_ring, u32 val)
{
- u16 prev_ntu = rx_ring->next_to_use;
+ u16 prev_ntu = rx_ring->next_to_use & ~0x7;
rx_ring->next_to_use = val;