[SRU][F:linux-bluefield][PATCH 15/21] xsk: Fix xsk_umem_xdp_frame_sz()

Bodong Wang bodong at nvidia.com
Mon Jul 5 15:39:53 UTC 2021

From: Björn Töpel <bjorn.topel at intel.com>

BugLink: https://bugs.launchpad.net/bugs/1934499

Calculating the "data_hard_end" for an XDP buffer coming from AF_XDP
zero-copy mode, the return value of xsk_umem_xdp_frame_sz() is added
to "data_hard_start".

Currently, the chunk size of the UMEM is returned by
xsk_umem_xdp_frame_sz(). This is not correct, if the fixed UMEM
headroom is non-zero. Fix this by returning the chunk_size without the
UMEM headroom.

Fixes: 2a637c5b1aaf ("xdp: For Intel AF_XDP drivers add XDP frame_sz")
Signed-off-by: Björn Töpel <bjorn.topel at intel.com>
Signed-off-by: Alexei Starovoitov <ast at kernel.org>
Link: https://lore.kernel.org/bpf/20200520192103.355233-2-bjorn.topel@gmail.com
(cherry picked from commit 44ac082b30dc2a05a7e23ed7e17b5f9513873386)
Signed-off-by: Maxim Mikityanskiy <maximmi at nvidia.com>
Reviewed-by: Moshe Shemesh <moshe at nvidia.com>
Signed-off-by: Bodong Wang <bodong at nvidia.com>
 include/net/xdp_sock.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/net/xdp_sock.h b/include/net/xdp_sock.h
index 66300b0..02afdf4 100644
--- a/include/net/xdp_sock.h
+++ b/include/net/xdp_sock.h
@@ -221,7 +221,7 @@ static inline u64 xsk_umem_adjust_offset(struct xdp_umem *umem, u64 address,
 static inline u32 xsk_umem_xdp_frame_sz(struct xdp_umem *umem)
-	return umem->chunk_size_nohr + umem->headroom;
+	return umem->chunk_size_nohr;

More information about the kernel-team mailing list