]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/bpf: Test accounting of tail calls when prog is NULL
authorHari Bathini <hbathini@linux.ibm.com>
Mon, 16 Feb 2026 09:08:02 +0000 (14:38 +0530)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 25 Feb 2026 01:09:27 +0000 (17:09 -0800)
Test whether tail call count is incorrectly accounted for, when the
tail call fails due to a missing BPF program.

Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com>
Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Link: https://lore.kernel.org/r/20260216090802.1805655-1-hbathini@linux.ibm.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/progs/tailcall3.c

index f60bcd7b8d4b5bfd0840a03393ce9d351824925e..204f19c30a3e10f62c796254c007613c44959ed5 100644 (file)
@@ -5,7 +5,7 @@
 
 struct {
        __uint(type, BPF_MAP_TYPE_PROG_ARRAY);
-       __uint(max_entries, 1);
+       __uint(max_entries, 2);
        __uint(key_size, sizeof(__u32));
        __uint(value_size, sizeof(__u32));
 } jmp_table SEC(".maps");
@@ -23,6 +23,9 @@ int classifier_0(struct __sk_buff *skb)
 SEC("tc")
 int entry(struct __sk_buff *skb)
 {
+       /* prog == NULL case */
+       bpf_tail_call_static(skb, &jmp_table, 1);
+
        bpf_tail_call_static(skb, &jmp_table, 0);
        return 0;
 }