]> git.baikalelectronics.ru Git - kernel.git/commit
net: Introduce {netdev,napi}_alloc_frag_align()
authorKevin Hao <haokexin@gmail.com>
Thu, 4 Feb 2021 10:56:36 +0000 (18:56 +0800)
committerJakub Kicinski <kuba@kernel.org>
Sat, 6 Feb 2021 19:57:28 +0000 (11:57 -0800)
commit4217398b1a7b8b5080aa02e3ca30c18c3fbfe353
treef569d71fb1d091a294c3a129bb08bb42c316b1f5
parent41efed5074dceeafd9866d2ba2b784abf0bf5979
net: Introduce {netdev,napi}_alloc_frag_align()

In the current implementation of {netdev,napi}_alloc_frag(), 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 {netdev,napi}_alloc_frag() are used by these hardwares
for DMA.
    buf = napi_alloc_frag(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. We have added the align
support for the page_frag functions, so add the corresponding
{netdev,napi}_frag functions.

Signed-off-by: Kevin Hao <haokexin@gmail.com>
Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/skbuff.h
net/core/skbuff.c