• Kevin Hao's avatar
    mm: page_frag: Introduce page_frag_alloc_align() · b358e212
    Kevin Hao authored
    In the current implementation of page_frag_alloc(), it doesn't have
    any align guarantee for the returned buffer address. But for some
    hardwares they do require the DMA buffer to be aligned correctly,
    so we would have to use some workarounds like below if the buffers
    allocated by the page_frag_alloc() are used by these hardwares for
    DMA.
        buf = page_frag_alloc(really_needed_size + align);
        buf = PTR_ALIGN(buf, align);
    
    These codes seems ugly and would waste a lot of memories if the buffers
    are used in a network driver for the TX/RX. So introduce
    page_frag_alloc_align() to make sure that an aligned buffer address is
    returned.
    Signed-off-by: default avatarKevin Hao <haokexin@gmail.com>
    Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
    Reviewed-by: default avatarAlexander Duyck <alexanderduyck@fb.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    b358e212
page_alloc.c 249 KB