ice: xsk: fix cleaned_count setting
authorMaciej Fijalkowski <maciej.fijalkowski@intel.com>
Mon, 13 Dec 2021 15:31:11 +0000 (16:31 +0100)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Fri, 17 Dec 2021 19:18:21 +0000 (11:18 -0800)
commitdcbaf72aa4232a7aa5db5e483972a6fe4ba2b41c
treeb16dfd607957038bcb603d26d0298241f199181f
parent8bea15ab7485863d900982ee6a0ff6f78b339c77
ice: xsk: fix cleaned_count setting

Currently cleaned_count is initialized to ICE_DESC_UNUSED(rx_ring) and
later on during the Rx processing it is incremented per each frame that
driver consumed. This can result in excessive buffers requested from xsk
pool based on that value.

To address this, just drop cleaned_count and pass
ICE_DESC_UNUSED(rx_ring) directly as a function argument to
ice_alloc_rx_bufs_zc(). Idea is to ask for buffers as many as consumed.

Let us also call ice_alloc_rx_bufs_zc unconditionally at the end of
ice_clean_rx_irq_zc. This has been changed in that way for corresponding
ice_clean_rx_irq, but not here.

Fixes: 2d4238f55697 ("ice: Add support for AF_XDP")
Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Tested-by: Kiran Bhandare <kiranx.bhandare@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_txrx.h
drivers/net/ethernet/intel/ice/ice_xsk.c