Hi, In the current implementation of napi_alloc_frag(), it doesn't have any align guarantee for the returned buffer address. We would have to use some ugly workarounds to make sure that we can get a align buffer address for some Ethernet drivers. This patch series tries to introduce some helper functions to make sure that an align buffer is returned. Then we can drop the ugly workarounds and avoid the unnecessary memory waste. Kevin Hao (4): mm: page_frag: Introduce page_frag_alloc_align() net: Introduce {netdev,napi}_alloc_frag_align() net: octeontx2: Use napi_alloc_frag_align() to avoid the memory waste net: dpaa2: Use napi_alloc_frag_align() to avoid the memory waste .../net/ethernet/freescale/dpaa2/dpaa2-eth.c | 3 +- .../marvell/octeontx2/nic/otx2_common.c | 3 +- include/linux/gfp.h | 3 ++ include/linux/skbuff.h | 2 + mm/page_alloc.c | 12 +++++- net/core/skbuff.c | 40 ++++++++++++------- 6 files changed, 43 insertions(+), 20 deletions(-) -- 2.29.2