• Maciej Fijalkowski's avatar
    ice: xsk: fix cleaned_count setting · dcbaf72a
    Maciej Fijalkowski authored
    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: 2d4238f5 ("ice: Add support for AF_XDP")
    Signed-off-by: default avatarMaciej Fijalkowski <maciej.fijalkowski@intel.com>
    Tested-by: default avatarKiran Bhandare <kiranx.bhandare@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    dcbaf72a
ice_xsk.c 20.1 KB