• Jesper Dangaard Brouer's avatar
    xdp: page_pool related fix to cpumap · 6bf071bf
    Jesper Dangaard Brouer authored
    When converting an xdp_frame into an SKB, and sending this into the network
    stack, then the underlying XDP memory model need to release associated
    resources, because the network stack don't have callbacks for XDP memory
    models.  The only memory model that needs this is page_pool, when a driver
    use the DMA-mapping feature.
    
    Introduce page_pool_release_page(), which basically does the same as
    page_pool_unmap_page(). Add xdp_release_frame() as the XDP memory model
    interface for calling it, if the memory model match MEM_TYPE_PAGE_POOL, to
    save the function call overhead for others. Have cpumap call
    xdp_release_frame() before xdp_scrub_frame().
    Signed-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6bf071bf
cpumap.c 19.7 KB