• Xuan Zhuo's avatar
    virtio_net: mergeable xdp: put old page immediately · 363d8ce4
    Xuan Zhuo authored
    In the xdp implementation of virtio-net mergeable, it always checks
    whether two page is used and a page is selected to release. This is
    complicated for the processing of action, and be careful.
    
    In the entire process, we have such principles:
    * If xdp_page is used (PASS, TX, Redirect), then we release the old
      page.
    * If it is a drop case, we will release two. The old page obtained from
      buf is release inside err_xdp, and xdp_page needs be relased by us.
    
    But in fact, when we allocate a new page, we can release the old page
    immediately. Then just one is using, we just need to release the new
    page for drop case. On the drop path, err_xdp will release the variable
    "page", so we only need to let "page" point to the new xdp_page in
    advance.
    Signed-off-by: default avatarXuan Zhuo <xuanzhuo@linux.alibaba.com>
    Acked-by: default avatarJason Wang <jasowang@redhat.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    363d8ce4
virtio_net.c 113 KB