]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit50e2a4a0e3234d6caeae1c0cecdec24e0da25217
treeb16dfd607957038bcb603d26d0298241f199181f
parent2e05b656eed63c71d7d9a19c2949b44877f15aa3
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: c0e590e847b4 ("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