On Thu, Feb 4, 2021 at 3:06 AM Kevin Hao <haoke...@gmail.com> wrote: > > 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 <haoke...@gmail.com> > --- > v3: Use align mask and refactor the {netdev,napi}_alloc_frag_align() as > suggested by Alexander. > > include/linux/skbuff.h | 36 ++++++++++++++++++++++++++++++++++-- > net/core/skbuff.c | 26 ++++++++++---------------- > 2 files changed, 44 insertions(+), 18 deletions(-)
Reviewed-by: Alexander Duyck <alexanderdu...@fb.com>