• Yunsheng Lin's avatar
    net: hns3: fix for TX clean num when cleaning TX BD · 63380a1a
    Yunsheng Lin authored
    hns3_desc_unused() returns how many BD have been cleaned, but new
    buffer has not been attached to them. The register of
    HNS3_RING_RX_RING_FBDNUM_REG returns how many BD need allocating new
    buffer to or need to cleaned. So the remaining BD need to be clean
    is HNS3_RING_RX_RING_FBDNUM_REG - hns3_desc_unused().
    
    Also, new buffer can not attach to the pending BD when the last BD is
    not handled, because memcpy has not been done on the first pending BD.
    
    This patch fixes by subtracting the pending BD num from unused_count
    after 'HNS3_RING_RX_RING_FBDNUM_REG - unused_count' is used to calculate
    the BD bum need to be clean.
    
    Fixes: e5597095 ("net: hns3: Add handling of GRO Pkts not fully RX'ed in NAPI poll")
    Signed-off-by: default avatarYunsheng Lin <linyunsheng@huawei.com>
    Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
    Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    63380a1a
hns3_enet.c 113 KB