[PATCH v7 bpf-next 2/2] selftests/bpf: Add selftests for the invocation of bpf_lwt_xmit_push_encap
From: Feng Yang
Date: Thu Feb 26 2026 - 05:00:23 EST
From: Feng Yang <yangfeng@xxxxxxxxxx>
Calling bpf_lwt_xmit_push_encap will not cause a crash when dst is missing.
Signed-off-by: Feng Yang <yangfeng@xxxxxxxxxx>
---
.../selftests/bpf/progs/verifier_lwt.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/tools/testing/selftests/bpf/progs/verifier_lwt.c b/tools/testing/selftests/bpf/progs/verifier_lwt.c
index 5ab746307309..a2b45e3e1542 100644
--- a/tools/testing/selftests/bpf/progs/verifier_lwt.c
+++ b/tools/testing/selftests/bpf/progs/verifier_lwt.c
@@ -231,4 +231,23 @@ __naked void not_permitted_for_lwt_prog(void)
: __clobber_all);
}
+SEC("lwt_xmit")
+__description("missing dst when calling bpf_lwt_xmit_push_encap")
+__success __retval(0)
+__naked void missing_dst_call_bpf_lwt_xmit_push_encap(void)
+{
+ asm volatile (" \
+ r9 = 69; \
+ r3 = r10; \
+ r3 += -32; \
+ *(u64 *)(r3 + 0) = r9; \
+ r2 = 2; \
+ r4 = 20; \
+ call %[bpf_lwt_push_encap]; \
+ exit; \
+" :
+ : __imm(bpf_lwt_push_encap)
+ : __clobber_all);
+}
+
char _license[] SEC("license") = "GPL";
--
2.43.0