• K
    mm: page_frag: Introduce page_frag_alloc_align() · b358e212
    Kevin Hao 提交于
    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: NKevin Hao <haokexin@gmail.com>
    Acked-by: NVlastimil Babka <vbabka@suse.cz>
    Reviewed-by: NAlexander Duyck <alexanderduyck@fb.com>
    Signed-off-by: NJakub Kicinski <kuba@kernel.org>
    b358e212
page_alloc.c 249.1 KB