projects/linux·commit 9c87e61e

Merge tag 'bpf-next-7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next

9c87e61e · Linus Torvalds <[email protected]> · 2026-06-17 09:18:14 +01:00

Pull bpf updates from Alexei Starovoitov:
 "Major changes:

   - Recover from BPF arena page faults using a scratch page and add
     ptep_try_set() for lockless empty-slot installs on x86 and arm64.

     This allows BPF kfuncs to access arena pointers directly.

     The 'arena_direct_access' stable branch was created for this work
     and was pulled into sched-ext and bpf-next trees (Tejun Heo, Kumar
     Kartikeya Dwivedi)

   - Lift old restriction and support 6+ arguments in BPF programs and
     kfuncs on x86 and arm64 (Yonghong Song, Puranjay Mohan)

  Other features and fixes:

   - Add 24-bit BTF vlen and reclaim unused bits in the BTF UAPI to ease
     addition of new BTF kinds (Alan Maguire)

   - Raise the maximum BPF call chain depth from 8 to 16 frames (Alexei
     Starovoitov)

   - Refactor object relationship tracking in the verifier and fix a
     dynptr use-after-free bug (Amery Hung)

   - Harden the signed program loader and reject exclusive maps as inner
     maps (Daniel Borkmann)

   - Replace the verifier min/max bounds fields with a circular number
     (cnum) representation and improve 32->64 bit range refinements
     (Eduard Zingerman)

   - Introduce the arena library and runtime (libarena) with a buddy
     allocator, rbtree and SPMC queue data structures, ASAN support and
     a parallel test harness. Allow subprograms to return arena pointers
     and switch to a BTF type-tag based __arena annotation (Emil
     Tsalapatis)

   - Cache build IDs in the sleepable stackmap path and avoid faultable
     build ID reads under mm locks (Ihor Solodrai)

   - Introduce the tracing_multi link to attach a single BPF program to
     many kernel functions at once. Allow specifying the uprobe_multi
     target via FD (Jiri Olsa)

   - Extend the bpf_list family of kfuncs with bpf_list_add/del(), and
     bpf_list_is_first/is_last/empty() (Kaitao Cheng)

   - Extend the BPF syscall with common attributes support for
     prog_load, btf_load and map_create (Leon Hwang)

   - Wrap rhashtable as BPF map (Mykyta Yatsenko, Herbert Xu)

   - Add sleepable support for tracepoint programs and fix deadlocks in
     LRU map due to NMI reentry (Mykyta Yatsenko)

   - Fix OOB access in bpf_flow_keys, fix nullness analysis of inner
     arrays, enforce write checks for global subprograms (Nuoqi Gui)

   - Report the maximum combined stack depth and print a breakdown of
     instructions processed per subprogram (Paul Chaignon)

   - Add an XDP load-balancer benchmark and arm64 JIT support for stack
     arguments (Puranjay Mohan)

   - Add kfuncs to traverse over wakeup_sources (Samuel Wu)

   - Allow sleepable BPF programs to use LPM trie maps directly (Vlad
     Poenaru)

   - Many more fixes and cleanups across the verifier, BTF, sockmap,
     devmap, bpffs, security hooks, s390/riscv/loongarch JITs,
     rqspinlock, libbpf, bpftool, selftests"

* tag 'bpf-next-7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next: (336 commits)
  selftests/bpf: Work around llvm stack overflow in crypto progs
  selftests/bpf: add test for bpf_msg_pop_data() overflow
  bpf, sockmap: fix integer overflow in bpf_msg_pop_data() bounds check
  sockmap: Fix use-after-free in udp_bpf_recvmsg()
  bpf, sockmap: keep sk_msg copy state in sync
  bpf, sockmap: Fix wrong rsge offset in bpf_msg_push_data()
  bpf, sockmap: reject overflowing copy + len in bpf_msg_push_data()
  selftsets/bpf: Retry map update on helper_fill_hashmap()
  selftests/bpf: Add test for sleepable lsm_cgroup rejection
  selftests/bpf: Add test to verify the fix for bpf_setsockopt() helper
  bpf: Fix bpf_get/setsockopt to tos for ipv4-mapped ipv6 socket
  selftests/bpf: Avoid static LLVM linking for cross builds
  selftests/bpf: Use common CFLAGS for urandom_read
  selftests/bpf: Initialize operation name before use
  tools/bpf: build: Append extra cflags
  libbpf: Initialize CFLAGS before including Makefile.include
  bpftool: Append extra host flags
  bpftool: Avoid adding EXTRA_CFLAGS to HOST_CFLAGS
  bpftool: Pass host flags to bootstrap libbpf
  selftests/bpf: correct CONFIG_PPC64 macro name in comment
  ...
Commit
9c87e61e3c5797277407ba5eae4eac8a52be3fa3
Parents
b85966ad · e4287bf3

Merge commit. Changes below are compared with the first parent: b85966ad.

Changes

349 files changed · +27862 −4983

FileStatusAddDelContent
Documentation/bpf/btf.rstmodified+2−4View file
Documentation/bpf/kfuncs.rstmodified+34−2View file
Documentation/bpf/map_lru_hash_update.dotmodified+42−2View file
MAINTAINERSmodified+7−27View file
arch/arm64/include/asm/pgtable.hmodified+28−0View file
arch/arm64/mm/fault.cmodified+7−3View file
arch/arm64/net/bpf_jit_comp.cmodified+120−32View file
arch/arm64/net/bpf_timed_may_goto.Smodified+4−4View file
arch/loongarch/net/bpf_jit.cmodified+26−26View file
arch/powerpc/net/bpf_jit_comp.cmodified+27−27View file
arch/riscv/net/bpf_jit_comp64.cmodified+35−26View file
arch/s390/net/bpf_jit_comp.cmodified+59−22View file
arch/x86/include/asm/pgtable.hmodified+12−0View file
arch/x86/mm/fault.cmodified+8−4View file
arch/x86/net/bpf_jit_comp.cmodified+172−33View file
drivers/base/power/power.hmodified+7−0View file
drivers/base/power/wakeup.cmodified+69−2View file
drivers/net/ethernet/netronome/nfp/bpf/verifier.cmodified+4−4View file
fs/bpf_fs_kfuncs.cmodified+1−1View file
fs/verity/measure.cmodified+2−2View file
include/asm-generic/rqspinlock.hmodified+11−3View file
include/linux/bpf-cgroup.hmodified+3−2View file
include/linux/bpf.hmodified+236−46View file
include/linux/bpf_defs.hadded+19−0View file
include/linux/bpf_lsm.hmodified+6−0View file
include/linux/bpf_types.hmodified+2−0View file
include/linux/bpf_verifier.hmodified+209−92View file
include/linux/btf.hmodified+4−3View file
include/linux/btf_ids.hmodified+1−0View file
include/linux/cnum.hadded+82−0View file
include/linux/filter.hmodified+25−2View file
include/linux/ftrace.hmodified+9−0View file
include/linux/pgtable.hmodified+43−0View file
include/linux/rhashtable.hmodified+3−1View file
include/linux/syscalls.hmodified+2−1View file
include/linux/trace_events.hmodified+12−0View file
include/trace/bpf_probe.hmodified+0−2View file
include/uapi/linux/bpf.hmodified+31−1View file
include/uapi/linux/btf.hmodified+14−12View file
kernel/bpf/Makefilemodified+1−1View file
kernel/bpf/arena.cmodified+266−49View file
kernel/bpf/arraymap.cmodified+6−8View file
kernel/bpf/backtrack.cmodified+66−16View file
kernel/bpf/bpf_lru_list.cmodified+100−65View file
kernel/bpf/bpf_lru_list.hmodified+19−6View file
kernel/bpf/bpf_lsm.cmodified+20−0View file
kernel/bpf/bpf_struct_ops.cmodified+50−13View file
kernel/bpf/btf.cmodified+219−99View file
kernel/bpf/cgroup.cmodified+44−21View file
kernel/bpf/cnum.cadded+120−0View file
kernel/bpf/cnum_defs.hadded+247−0View file
kernel/bpf/const_fold.cmodified+8−0View file
kernel/bpf/core.cmodified+24−3View file
kernel/bpf/devmap.cmodified+19−0View file
kernel/bpf/fixups.cmodified+24−3View file
kernel/bpf/hashtab.cmodified+817−23View file
kernel/bpf/helpers.cmodified+154−50View file
kernel/bpf/inode.cmodified+4−0View file
kernel/bpf/liveness.cmodified+139−44View file
kernel/bpf/log.cmodified+104−28View file
kernel/bpf/lpm_trie.cmodified+4−4View file
kernel/bpf/map_in_map.cmodified+4−1View file
kernel/bpf/map_iter.cmodified+6−1View file
kernel/bpf/stackmap.cmodified+198−17View file
kernel/bpf/states.cmodified+51−16View file
kernel/bpf/syscall.cmodified+231−81View file
kernel/bpf/trampoline.cmodified+524−147View file
kernel/bpf/verifier.cmodified+1978−2196View file
kernel/events/core.cmodified+9−0View file
kernel/trace/bpf_trace.cmodified+306−28View file
kernel/trace/ftrace.cmodified+29−6View file
kernel/trace/trace_syscalls.cmodified+58−52View file
lib/rhashtable.cmodified+102−0View file
lib/test_bpf.cmodified+263−100View file
lib/test_rhashtable.cmodified+75−0View file
net/bpf/bpf_dummy_struct_ops.cmodified+7−7View file
net/bpf/test_run.cmodified+53−15View file
net/core/filter.cmodified+86−31View file
net/core/lwt_bpf.cmodified+12−0View file
net/ipv4/udp_bpf.cmodified+9−0View file
tools/bpf/Makefilemodified+1−0View file
tools/bpf/bpftool/Documentation/bpftool-map.rstmodified+1−1View file
tools/bpf/bpftool/Makefilemodified+17−3View file
tools/bpf/bpftool/btf.cmodified+6−11View file
tools/bpf/bpftool/btf_dumper.cmodified+2−2View file
tools/bpf/bpftool/gen.cmodified+10−8View file
tools/bpf/bpftool/map.cmodified+1−1View file
tools/bpf/bpftool/net.cmodified+2−2View file
tools/build/feature/test-bpf.cmodified+2−0View file
tools/include/uapi/linux/bpf.hmodified+32−1View file
tools/include/uapi/linux/btf.hmodified+14−12View file
tools/lib/bpf/Makefilemodified+9−8View file
tools/lib/bpf/bpf.cmodified+66−1View file
tools/lib/bpf/bpf.hmodified+23−2View file
tools/lib/bpf/btf.cmodified+35−19View file
tools/lib/bpf/btf.hmodified+1−1View file
tools/lib/bpf/btf_dump.cmodified+12−12View file
tools/lib/bpf/features.cmodified+8−0View file
tools/lib/bpf/gen_loader.cmodified+67−25View file
tools/lib/bpf/libbpf.cmodified+437−36View file
tools/lib/bpf/libbpf.hmodified+15−0View file
tools/lib/bpf/libbpf.mapmodified+1−0View file
tools/lib/bpf/libbpf_internal.hmodified+4−0View file
tools/lib/bpf/libbpf_probes.cmodified+3−0View file
tools/lib/bpf/relo_core.cmodified+8−8View file
tools/lib/bpf/skel_internal.hmodified+5−0View file
tools/lib/bpf/strset.cmodified+41−21View file
tools/lib/bpf/usdt.cmodified+12−4View file
tools/testing/selftests/bpf/.gitignoremodified+0−1View file
tools/testing/selftests/bpf/Makefilemodified+201−66View file
tools/testing/selftests/bpf/README.rstmodified+1−1View file
tools/testing/selftests/bpf/bench.cmodified+21−5View file
tools/testing/selftests/bpf/bench.hmodified+1−0View file
tools/testing/selftests/bpf/bench_bpf_timing.hadded+50−0View file
tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_full_update.cmodified+32−2View file
tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_lookup.cmodified+29−2View file
tools/testing/selftests/bpf/benchs/bench_bpf_nop.cadded+84−0View file
tools/testing/selftests/bpf/benchs/bench_bpf_timing.cadded+298−0View file
tools/testing/selftests/bpf/benchs/bench_htab_mem.cmodified+33−2View file
tools/testing/selftests/bpf/benchs/bench_xdp_lb.cadded+1124−0View file
tools/testing/selftests/bpf/benchs/run_bench_xdp_lb.shadded+79−0View file
tools/testing/selftests/bpf/bpf_arena_alloc.hmodified+1−1View file
tools/testing/selftests/bpf/bpf_arena_htab.hmodified+5−6View file
tools/testing/selftests/bpf/bpf_arena_list.hmodified+1−1View file
tools/testing/selftests/bpf/bpf_arena_strsearch.hmodified+3−3View file
tools/testing/selftests/bpf/bpf_experimental.hmodified+1−83View file
tools/testing/selftests/bpf/bpf_kfuncs.hmodified+4−4View file
tools/testing/selftests/bpf/configmodified+2−1View file
tools/testing/selftests/bpf/default.profrawadded+0−0View file
tools/testing/selftests/bpf/jit_disasm_helpers.cmodified+11−2View file
tools/testing/selftests/bpf/libarena/Makefileadded+92−0View file
tools/testing/selftests/bpf/bpf_arena_common.h → tools/testing/selftests/bpf/libarena/include/bpf_arena_common.hrenamed+2−3View file
tools/testing/selftests/bpf/progs/bpf_arena_spin_lock.h → tools/testing/selftests/bpf/libarena/include/bpf_arena_spin_lock.hrenamed+9−8View file
tools/testing/selftests/bpf/bpf_atomic.h → tools/testing/selftests/bpf/libarena/include/bpf_atomic.hrenamed+3−1View file
tools/testing/selftests/bpf/libarena/include/bpf_may_goto.hadded+84−0View file
tools/testing/selftests/bpf/libarena/include/libarena/asan.hadded+101−0View file
tools/testing/selftests/bpf/libarena/include/libarena/buddy.hadded+81−0View file
tools/testing/selftests/bpf/libarena/include/libarena/common.hadded+93−0View file
tools/testing/selftests/bpf/libarena/include/libarena/rbtree.hadded+83−0View file
tools/testing/selftests/bpf/libarena/include/libarena/spmc.hadded+27−0View file
tools/testing/selftests/bpf/libarena/include/libarena/userspace.hadded+138−0View file
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.cadded+258−0View file
tools/testing/selftests/bpf/libarena/selftests/st_asan_common.hadded+52−0View file
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.cadded+209−0View file
tools/testing/selftests/bpf/libarena/selftests/test_parallel_spmc.bpf.cadded+669−0View file
tools/testing/selftests/bpf/libarena/selftests/test_progs_compat.hadded+15−0View file
tools/testing/selftests/bpf/libarena/selftests/test_rbtree.bpf.cadded+968−0View file
tools/testing/selftests/bpf/libarena/selftests/test_spmc.bpf.cadded+194−0View file
tools/testing/selftests/bpf/libarena/src/asan.bpf.cadded+553−0View file
tools/testing/selftests/bpf/libarena/src/buddy.bpf.cadded+903−0View file
tools/testing/selftests/bpf/libarena/src/common.bpf.cadded+52−0View file
tools/testing/selftests/bpf/libarena/src/rbtree.bpf.cadded+1047−0View file
tools/testing/selftests/bpf/libarena/src/spmc.bpf.cadded+234−0View file
tools/testing/selftests/bpf/prog_tests/arena_direct_value.cadded+73−0View file
tools/testing/selftests/bpf/prog_tests/arena_spin_lock.cmodified+0−7View file
tools/testing/selftests/bpf/prog_tests/bpf_attr_size.cadded+124−0View file
tools/testing/selftests/bpf/prog_tests/bpf_cookie.cmodified+11−6View file
tools/testing/selftests/bpf/prog_tests/bpf_nf.cmodified+11−11View file
tools/testing/selftests/bpf/prog_tests/bpf_qdisc.cmodified+8−0View file
tools/testing/selftests/bpf/prog_tests/btf.cmodified+41−4View file
tools/testing/selftests/bpf/prog_tests/btf_dedup_split.cmodified+33−18View file
tools/testing/selftests/bpf/prog_tests/btf_dump.cmodified+2−2View file
tools/testing/selftests/bpf/prog_tests/cb_refs.cmodified+2−2View file
tools/testing/selftests/bpf/prog_tests/cgrp_local_storage.cmodified+13−2View file
tools/testing/selftests/bpf/prog_tests/ctx_rewrite.cmodified+8−9View file
tools/testing/selftests/bpf/prog_tests/exceptions.cmodified+7−0View file
tools/testing/selftests/bpf/prog_tests/file_reader.cmodified+10−12View file
tools/testing/selftests/bpf/prog_tests/fill_link_info.cmodified+1−1View file
tools/testing/selftests/bpf/prog_tests/htab_update.cmodified+2−2View file
tools/testing/selftests/bpf/prog_tests/iters.cmodified+0−2View file
tools/testing/selftests/bpf/prog_tests/kfunc_call.cmodified+1−1View file
tools/testing/selftests/bpf/prog_tests/libarena.cadded+253−0View file
tools/testing/selftests/bpf/prog_tests/libarena_asan.cadded+93−0View file
tools/testing/selftests/bpf/prog_tests/linked_list.cmodified+19−18View file
tools/testing/selftests/bpf/prog_tests/lru_lock_nmi.cadded+243−0View file
tools/testing/selftests/bpf/prog_tests/lsm_cgroup.cmodified+79−0View file
tools/testing/selftests/bpf/prog_tests/lwt_ip_encap.cmodified+145−0View file
tools/testing/selftests/bpf/prog_tests/map_excl.cmodified+122−0View file
tools/testing/selftests/bpf/prog_tests/map_init.cmodified+192−0View file
tools/testing/selftests/bpf/prog_tests/map_kptr.cmodified+57−9View file
tools/testing/selftests/bpf/prog_tests/refcounted_kptr.cmodified+6−2View file
tools/testing/selftests/bpf/prog_tests/reg_bounds.cmodified+75−15View file
tools/testing/selftests/bpf/prog_tests/rhash.cadded+183−0View file
tools/testing/selftests/bpf/prog_tests/setget_sockopt.cmodified+78−0View file
tools/testing/selftests/bpf/prog_tests/signed_loader.cadded+1135−0View file
tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.cadded+142−0View file
tools/testing/selftests/bpf/prog_tests/sockmap_basic.cmodified+48−0View file
tools/testing/selftests/bpf/prog_tests/spin_lock.cmodified+2−2View file
tools/testing/selftests/bpf/prog_tests/stack_arg.cadded+139−0View file
tools/testing/selftests/bpf/prog_tests/stack_arg_fail.cadded+10−0View file
tools/testing/selftests/bpf/prog_tests/stack_arg_precision.cadded+10−0View file
tools/testing/selftests/bpf/prog_tests/tailcalls.cmodified+186−0View file
tools/testing/selftests/bpf/prog_tests/task_kfunc.cmodified+41−1View file
tools/testing/selftests/bpf/prog_tests/task_local_storage.cmodified+1−0View file
tools/testing/selftests/bpf/prog_tests/test_lsm.cmodified+0−22View file
tools/testing/selftests/bpf/prog_tests/test_xdp_veth.cmodified+163−3View file
tools/testing/selftests/bpf/prog_tests/tracing_multi.cadded+960−0View file
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.cmodified+93−1View file
tools/testing/selftests/bpf/prog_tests/verifier.cmodified+8−0View file
tools/testing/selftests/bpf/prog_tests/verifier_log.cmodified+1−0View file
tools/testing/selftests/bpf/prog_tests/vmlinux.cmodified+43−2View file
tools/testing/selftests/bpf/prog_tests/wakeup_source.cadded+118−0View file
tools/testing/selftests/bpf/progs/arena_atomics.cmodified+1−1View file
tools/testing/selftests/bpf/progs/arena_spin_lock.cmodified+2−1View file
tools/testing/selftests/bpf/progs/bench_bpf_timing.bpf.hadded+69−0View file
tools/testing/selftests/bpf/progs/bpf_iter_bpf_rhash_map.cadded+34−0View file
tools/testing/selftests/bpf/progs/bpf_iter_task_vmas.cmodified+1−1View file
tools/testing/selftests/bpf/progs/bpf_misc.hmodified+1−0View file
tools/testing/selftests/bpf/progs/bpf_nop_bench.cadded+14−0View file
tools/testing/selftests/bpf/progs/bpf_qdisc_dynptr_use_after_invalidate_clone.cadded+74−0View file
tools/testing/selftests/bpf/progs/bpf_qdisc_fail__invalid_dynptr.cadded+68−0View file
tools/testing/selftests/bpf/progs/bpf_qdisc_fail__invalid_dynptr_cross_frame.cadded+74−0View file
tools/testing/selftests/bpf/progs/bpf_qdisc_fail__invalid_dynptr_slice.cadded+70−0View file
tools/testing/selftests/bpf/progs/bpf_qdisc_fq.cmodified+3−8View file
tools/testing/selftests/bpf/progs/btf__stack_arg_precision.cadded+24−0View file
tools/testing/selftests/bpf/progs/btf__verifier_stack_arg_order.cadded+49−0View file
tools/testing/selftests/bpf/progs/cgrp_kfunc_failure.cmodified+9−9View file
tools/testing/selftests/bpf/progs/cgrp_ls_sleepable.cmodified+18−0View file
tools/testing/selftests/bpf/progs/compute_live_registers.cmodified+1−1View file
tools/testing/selftests/bpf/progs/cpumask_failure.cmodified+5−5View file
tools/testing/selftests/bpf/progs/cpumask_success.cmodified+1−1View file
tools/testing/selftests/bpf/progs/crypto_bench.cmodified+14−7View file
tools/testing/selftests/bpf/progs/crypto_sanity.cmodified+14−7View file
tools/testing/selftests/bpf/progs/dynptr_fail.cmodified+58−16View file
tools/testing/selftests/bpf/progs/dynptr_success.cmodified+3−3View file
tools/testing/selftests/bpf/progs/exceptions.cmodified+114−0View file
tools/testing/selftests/bpf/progs/fexit_bpf2bpf.cmodified+11−2View file
tools/testing/selftests/bpf/progs/file_reader.cmodified+1−1View file
tools/testing/selftests/bpf/progs/file_reader_fail.cmodified+62−2View file
tools/testing/selftests/bpf/progs/htab_update.cmodified+2−2View file
tools/testing/selftests/bpf/progs/irq.cmodified+2−2View file
tools/testing/selftests/bpf/progs/iters.cmodified+3−3View file
tools/testing/selftests/bpf/progs/iters_state_safety.cmodified+9−9View file
tools/testing/selftests/bpf/progs/iters_testmod.cmodified+2−2View file
tools/testing/selftests/bpf/progs/iters_testmod_seq.cmodified+8−8View file
tools/testing/selftests/bpf/progs/linked_list.cmodified+71−0View file
tools/testing/selftests/bpf/progs/lpm_trie_bench.cmodified+1−1View file
tools/testing/selftests/bpf/progs/lru_lock_nmi.cadded+33−0View file
tools/testing/selftests/bpf/progs/lsm_cgroup.cmodified+30−0View file
tools/testing/selftests/bpf/progs/map_kptr.cmodified+86−3View file
tools/testing/selftests/bpf/progs/map_kptr_fail.cmodified+2−2View file
tools/testing/selftests/bpf/progs/percpu_alloc_fail.cmodified+2−2View file
tools/testing/selftests/bpf/progs/rbtree_fail.cmodified+3−3View file
tools/testing/selftests/bpf/progs/refcounted_kptr.cmodified+440−1View file
tools/testing/selftests/bpf/progs/refcounted_kptr_fail.cmodified+1−1View file
tools/testing/selftests/bpf/progs/rhash.cadded+248−0View file
tools/testing/selftests/bpf/progs/setget_sockopt.cmodified+23−0View file
tools/testing/selftests/bpf/progs/sk_bypass_prot_mem.cmodified+2−0View file
tools/testing/selftests/bpf/progs/stack_arg.cadded+273−0View file
tools/testing/selftests/bpf/progs/stack_arg_fail.cadded+114−0View file
tools/testing/selftests/bpf/progs/stack_arg_kfunc.cadded+166−0View file
tools/testing/selftests/bpf/progs/stack_arg_precision.cadded+135−0View file
tools/testing/selftests/bpf/progs/stream.cmodified+1−1View file
tools/testing/selftests/bpf/progs/stream_fail.cmodified+1−1View file
tools/testing/selftests/bpf/progs/tailcall_bpf2bpf2.cmodified+4−1View file
tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy1.cmodified+9−4View file
tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy2.cmodified+17−7View file
tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy3.cmodified+10−3View file
tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy_fentry.cmodified+10−3View file
tools/testing/selftests/bpf/progs/tailcall_cgrp_storage.cadded+44−0View file
tools/testing/selftests/bpf/progs/tailcall_cgrp_storage_no_storage.cadded+26−0View file
tools/testing/selftests/bpf/progs/tailcall_cgrp_storage_owner.cadded+32−0View file
tools/testing/selftests/bpf/progs/task_kfunc_failure.cmodified+51−11View file
tools/testing/selftests/bpf/progs/task_kfunc_success.cmodified+6−7View file
tools/testing/selftests/bpf/progs/task_local_storage.cmodified+19−0View file
tools/testing/selftests/bpf/progs/task_work_fail.cmodified+3−3View file
tools/testing/selftests/bpf/progs/test_bpf_nf_fail.cmodified+4−4View file
tools/testing/selftests/bpf/progs/test_fill_link_info.cmodified+1−1View file
tools/testing/selftests/bpf/progs/test_global_func3.cmodified+50−2View file
tools/testing/selftests/bpf/progs/test_kfunc_dynptr_param.cmodified+3−8View file
tools/testing/selftests/bpf/progs/test_kfunc_param_nullable.cmodified+1−1View file
tools/testing/selftests/bpf/progs/test_lirc_mode2_kern.cmodified+2−2View file
tools/testing/selftests/bpf/progs/test_lwt_ip_encap.cmodified+145−10View file
tools/testing/selftests/bpf/progs/test_ringbuf_map_key.cmodified+3−8View file
tools/testing/selftests/bpf/progs/test_signed_loader.cadded+18−0View file
tools/testing/selftests/bpf/progs/test_signed_loader_data.cadded+20−0View file
tools/testing/selftests/bpf/progs/test_signed_loader_lsm.cadded+30−0View file
tools/testing/selftests/bpf/progs/test_signed_loader_map.cadded+28−0View file
tools/testing/selftests/bpf/progs/test_sleepable_tracepoints.cadded+112−0View file
tools/testing/selftests/bpf/progs/test_sleepable_tracepoints_fail.cadded+18−0View file
tools/testing/selftests/bpf/progs/test_sockmap_msg_pop_data.cadded+27−0View file
tools/testing/selftests/bpf/progs/test_tunnel_kern.cmodified+6−7View file
tools/testing/selftests/bpf/progs/test_vmlinux.cmodified+2−2View file
tools/testing/selftests/bpf/progs/test_wakeup_source.cadded+92−0View file
tools/testing/selftests/bpf/progs/tracing_multi_attach.cadded+39−0View file
tools/testing/selftests/bpf/progs/tracing_multi_attach_module.cadded+25−0View file
tools/testing/selftests/bpf/progs/tracing_multi_bench.cadded+12−0View file
tools/testing/selftests/bpf/progs/tracing_multi_check.cadded+214−0View file
tools/testing/selftests/bpf/progs/tracing_multi_fail.cadded+18−0View file
tools/testing/selftests/bpf/progs/tracing_multi_intersect_attach.cadded+41−0View file
tools/testing/selftests/bpf/progs/tracing_multi_rollback.cadded+43−0View file
tools/testing/selftests/bpf/progs/tracing_multi_session_attach.cadded+65−0View file
tools/testing/selftests/bpf/progs/tracing_multi_verifier.cadded+31−0View file
tools/testing/selftests/bpf/progs/user_ringbuf_fail.cmodified+2−2View file
tools/testing/selftests/bpf/progs/verifier_arena.cmodified+68−1View file
tools/testing/selftests/bpf/progs/verifier_arena_globals1.cmodified+1−1View file
tools/testing/selftests/bpf/progs/verifier_arena_globals2.cmodified+1−1View file
tools/testing/selftests/bpf/progs/verifier_arena_large.cmodified+1−1View file
tools/testing/selftests/bpf/progs/verifier_bits_iter.cmodified+2−2View file
tools/testing/selftests/bpf/progs/verifier_bounds.cmodified+120−10View file
tools/testing/selftests/bpf/progs/verifier_bpf_fastcall.cmodified+13−14View file
tools/testing/selftests/bpf/progs/verifier_flow_keys.cadded+97−0View file
tools/testing/selftests/bpf/progs/verifier_global_ptr_args.cmodified+20−1View file
tools/testing/selftests/bpf/progs/verifier_global_subprogs.cmodified+19−1View file
tools/testing/selftests/bpf/progs/verifier_jit_inline.cmodified+3−1View file
tools/testing/selftests/bpf/progs/verifier_ldsx.cmodified+4−4View file
tools/testing/selftests/bpf/progs/verifier_liveness_exp.cmodified+1−1View file
tools/testing/selftests/bpf/progs/verifier_lsm.cmodified+9−0View file
tools/testing/selftests/bpf/progs/verifier_map_in_map.cmodified+40−0View file
tools/testing/selftests/bpf/progs/verifier_map_ptr.cmodified+32−4View file
tools/testing/selftests/bpf/progs/verifier_may_goto_1.cmodified+6−6View file
tools/testing/selftests/bpf/progs/verifier_private_stack.cmodified+25−5View file
tools/testing/selftests/bpf/progs/verifier_ref_tracking.cmodified+4−4View file
tools/testing/selftests/bpf/progs/verifier_scalar_ids.cmodified+12−13View file
tools/testing/selftests/bpf/progs/verifier_sdiv.cmodified+32−32View file
tools/testing/selftests/bpf/progs/verifier_set_retval.cadded+107−0View file
tools/testing/selftests/bpf/progs/verifier_sock.cmodified+10−5View file
tools/testing/selftests/bpf/progs/verifier_stack_arg.cadded+447−0View file
tools/testing/selftests/bpf/progs/verifier_stack_arg_order.cadded+185−0View file
tools/testing/selftests/bpf/progs/verifier_subreg.cmodified+4−2View file
tools/testing/selftests/bpf/progs/verifier_tailcall_jit.cmodified+1−0View file
tools/testing/selftests/bpf/progs/verifier_vfs_reject.cmodified+5−5View file
tools/testing/selftests/bpf/progs/wakeup_source.hadded+22−0View file
tools/testing/selftests/bpf/progs/wakeup_source_fail.cadded+76−0View file
tools/testing/selftests/bpf/progs/wq_failures.cmodified+1−1View file
tools/testing/selftests/bpf/progs/xdp_flowtable.cmodified+5−2View file
tools/testing/selftests/bpf/progs/xdp_lb_bench.cadded+647−0View file
tools/testing/selftests/bpf/progs/xdping_kern.cdeleted+0−183View before deletion
tools/testing/selftests/bpf/test_kmods/Makefilemodified+27−3View file
tools/testing/selftests/bpf/test_kmods/bpf_testmod.cmodified+79−0View file
tools/testing/selftests/bpf/test_kmods/bpf_testmod_kfunc.hmodified+33−0View file
tools/testing/selftests/bpf/test_lirc_mode2_user.cmodified+3−3View file
tools/testing/selftests/bpf/test_loader.cmodified+174−13View file
tools/testing/selftests/bpf/test_maps.cmodified+13−10View file
tools/testing/selftests/bpf/test_progs.cmodified+46−9View file
tools/testing/selftests/bpf/test_progs.hmodified+3−0View file
tools/testing/selftests/bpf/test_xdping.shdeleted+0−103View before deletion
tools/testing/selftests/bpf/testing_helpers.cmodified+18−0View file
tools/testing/selftests/bpf/testing_helpers.hmodified+1−0View file
tools/testing/selftests/bpf/trace_helpers.cmodified+4−3View file
tools/testing/selftests/bpf/trace_helpers.hmodified+1−0View file
tools/testing/selftests/bpf/uprobe_multi.cmodified+3−1View file
tools/testing/selftests/bpf/verifier/calls.cmodified+55−31View file
tools/testing/selftests/bpf/verifier/sleepable.cmodified+15−2View file
tools/testing/selftests/bpf/veristat.cmodified+9−4View file
tools/testing/selftests/bpf/vmtest.shmodified+1−1View file
tools/testing/selftests/bpf/xdp_lb_bench_common.hadded+112−0View file
tools/testing/selftests/bpf/xdping.cdeleted+0−254View before deletion
tools/testing/selftests/bpf/xdping.hdeleted+0−13View before deletion

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/bpf/btf.rst

View file
diff --git a/Documentation/bpf/btf.rst b/Documentation/bpf/btf.rst
index 3b60583..3f05f17 100644
--- a/Documentation/bpf/btf.rst
+++ b/Documentation/bpf/btf.rst
@@ -97,10 +97,8 @@ Each type contains the following common data::
struct btf_type {
__u32 name_off;
/* "info" bits arrangement
- * bits 0-15: vlen (e.g. # of struct's members)
- * bits 16-23: unused
- * bits 24-28: kind (e.g. int, ptr, array...etc)
- * bits 29-30: unused
+ * bits 0-23: vlen (e.g. # of struct's members)
+ * bits 24-30: kind (e.g. int, ptr, array...etc)
* bit 31: kind_flag, currently used by
* struct, union, enum, fwd, enum64,
* decl_tag and type_tag

Documentation/bpf/kfuncs.rst

View file
diff --git a/Documentation/bpf/kfuncs.rst b/Documentation/bpf/kfuncs.rst
index 75e6c07..4c814ff 100644
--- a/Documentation/bpf/kfuncs.rst
+++ b/Documentation/bpf/kfuncs.rst
@@ -207,8 +207,26 @@ Here, the buffer may be NULL. If the buffer is not NULL, it must be at least
buffer__szk bytes in size. The kfunc is responsible for checking if the buffer
is NULL before using it.
-2.3.5 __str Annotation
-----------------------------
+2.3.5 __nonown_allowed Annotation
+---------------------------------
+
+This annotation is used to indicate that the parameter may be a non-owning reference.
+
+An example is given below::
+
+ __bpf_kfunc int bpf_list_add(..., struct bpf_list_node
+ *prev__nonown_allowed, ...)
+ {
+ ...
+ }
+
+For the ``prev__nonown_allowed`` parameter (resolved as ``KF_ARG_PTR_TO_LIST_NODE``),
+suffix ``__nonown_allowed`` retains the usual owning-pointer rules and also
+permits a non-owning reference with no ref_obj_id (e.g. the return value of
+bpf_list_front() / bpf_list_back()).
+
+2.3.6 __str Annotation
+----------------------
This annotation is used to indicate that the argument is a constant string.
An example is given below::
@@ -462,6 +480,20 @@ In order to accommodate such requirements, the verifier will enforce strict
PTR_TO_BTF_ID type matching if two types have the exact same name, with one
being suffixed with ``___init``.
+2.8 Accessing arena memory through kfunc arguments
+--------------------------------------------------
+
+A read or write at any address inside an arena does not oops the kernel.
+Unallocated arena pages are lazily backed by a scratch page and the
+access is reported through the program's BPF stream as an error. Only
+the BPF program's correctness is affected; the kernel itself remains
+intact.
+
+The arena is followed by a ``GUARD_SZ / 2`` (32 KiB) guard region that
+is also covered by this recovery. A kfunc handed an arena pointer may
+therefore access up to ``GUARD_SZ / 2`` past it without bounds-checking
+against the arena. Larger accesses must verify the range explicitly.
+
.. _BPF_kfunc_lifecycle_expectations:
3. kfunc lifecycle expectations

Documentation/bpf/map_lru_hash_update.dot

View file
diff --git a/Documentation/bpf/map_lru_hash_update.dot b/Documentation/bpf/map_lru_hash_update.dot
index ab10058..412bc8b 100644
--- a/Documentation/bpf/map_lru_hash_update.dot
+++ b/Documentation/bpf/map_lru_hash_update.dot
@@ -21,10 +21,18 @@ digraph {
// names that initiate the corresponding logic in kernel/bpf/bpf_lru_list.c.
// Number suffixes and errno suffixes handle subsections of the corresponding
// logic in the function as of the writing of this dot.
+ //
+ // All LRU locks are rqspinlock_t. Every acquire can fail (AA self-deadlock
+ // or contention timeout); on failure the corresponding helper returns NULL
+ // and the caller propagates -ENOMEM. The "rqspinlock acquire failed"
+ // terminal below is reached via the dashed arrows from each acquire site.
+
+ rqspinlock_failed [shape=rectangle,
+ label="Any LRU rqspinlock\nacquire fails\n(AA or timeout)"]
// cf. __local_list_pop_free() / bpf_percpu_lru_pop_free()
local_freelist_check [shape=diamond,fillcolor=1,
- label="Local freelist\nnode available?"];
+ label="Local freelist\nnode available?\n(lockless free_llist)"];
use_local_node [shape=rectangle,
label="Use node owned\nby this CPU"]
@@ -82,6 +90,15 @@ digraph {
// fn__local_list_pop_pending()
}
+ // Post-steal: re-acquire local loc_l->lock to insert the stolen node into
+ // the local pending list. If the acquire fails, the stolen node is published
+ // to the lockless local free_llist so the next pop on this CPU picks it up
+ // instead of orphaning it.
+ post_steal_lock [shape=diamond,fillcolor=1,
+ label="Acquire local\nloc_l->lock\nto add pending"]
+ post_steal_to_free_llist [shape=rectangle,
+ label="Publish stolen node to\nlocal free_llist (lockless)"]
+
fn_bpf_lru_list_pop_free_to_local2 [shape=rectangle,
label="Use node that was\nnot recently referenced"]
local_freelist_check4 [shape=rectangle,
@@ -97,10 +114,19 @@ digraph {
fn_htab_lru_map_update_elem_ENOENT [shape=oval,label="return -ENOENT"]
begin -> local_freelist_check
+ // The initial per-CPU lock (loc_l->lock for common, l->lock for percpu) is
+ // acquired before the local freelist check; rqspinlock failure here exits
+ // directly to -ENOMEM (no recovery needed: nothing was removed yet).
+ local_freelist_check -> rqspinlock_failed [style=dashed,
+ xlabel="acquire fails"]
local_freelist_check -> use_local_node [xlabel="Y"]
local_freelist_check -> common_lru_check [xlabel="N"]
common_lru_check -> fn_bpf_lru_list_pop_free_to_local [xlabel="Y"]
common_lru_check -> fn___bpf_lru_list_shrink_inactive [xlabel="N"]
+ // Global lru_list lock acquire failure in pop_free_to_local: skip refill,
+ // fall through to the steal path. Not ENOMEM by itself.
+ fn_bpf_lru_list_pop_free_to_local -> common_lru_check2 [style=dashed,
+ xlabel="global lru_lock\nacquire fails"]
fn_bpf_lru_list_pop_free_to_local -> fn___bpf_lru_node_move_to_free
fn___bpf_lru_node_move_to_free ->
fn_bpf_lru_list_pop_free_to_local2 [xlabel="Y"]
@@ -120,13 +146,27 @@ digraph {
local_freelist_check6 -> local_freelist_check7
local_freelist_check7 -> fn_htab_lru_map_update_elem
- fn_htab_lru_map_update_elem -> fn_htab_lru_map_update_elem3 [xlabel = "Y"]
+ // Steal-loop victim lock failure is silent: treat as "no node found here"
+ // and continue to next CPU; same edge as the existing "N" path.
+ local_freelist_check5 -> fn_htab_lru_map_update_elem2 [style=dashed,
+ xlabel="victim's lock\nfails: skip"]
+ // After a successful steal, re-acquire the local loc_l->lock. On failure
+ // the stolen node is published to free_llist (recovered, not orphaned)
+ // and the update returns -ENOMEM.
+ fn_htab_lru_map_update_elem -> post_steal_lock [xlabel = "Y"]
+ post_steal_lock -> fn_htab_lru_map_update_elem3 [xlabel = "OK"]
+ post_steal_lock -> post_steal_to_free_llist [style=dashed,
+ xlabel="loc_l->lock\nacquire fails"]
+ post_steal_to_free_llist -> fn_htab_lru_map_update_elem_ENOMEM
fn_htab_lru_map_update_elem -> fn_htab_lru_map_update_elem2 [xlabel = "N"]
fn_htab_lru_map_update_elem2 ->
fn_htab_lru_map_update_elem_ENOMEM [xlabel = "Y"]
fn_htab_lru_map_update_elem2 -> local_freelist_check5 [xlabel = "N"]
fn_htab_lru_map_update_elem3 -> fn_htab_lru_map_update_elem4
+ // Shared rqspinlock-failure terminal collapses to the same -ENOMEM exit.
+ rqspinlock_failed -> fn_htab_lru_map_update_elem_ENOMEM
+
use_local_node -> fn_htab_lru_map_update_elem4
fn_bpf_lru_list_pop_free_to_local2 -> fn_htab_lru_map_update_elem4
local_freelist_check4 -> fn_htab_lru_map_update_elem4

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index 12bd898..a7fd313 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4797,13 +4797,6 @@ S: Supported
F: arch/x86/net/
X: arch/x86/net/bpf_jit_comp32.c
-BPF [BTF]
-M: Martin KaFai Lau <[email protected]>
-S: Maintained
-F: include/linux/btf*
-F: kernel/bpf/btf.c
-
BPF [CORE]
M: Alexei Starovoitov <[email protected]>
M: Daniel Borkmann <[email protected]>
@@ -4840,12 +4833,13 @@ BPF [GENERAL] (Safe Dynamic Programs and Tools)
M: Alexei Starovoitov <[email protected]>
M: Daniel Borkmann <[email protected]>
M: Andrii Nakryiko <[email protected]>
-R: Martin KaFai Lau <[email protected]>
M: Eduard Zingerman <[email protected]>
M: Kumar Kartikeya Dwivedi <[email protected]>
+R: Martin KaFai Lau <[email protected]>
R: Song Liu <[email protected]>
R: Yonghong Song <[email protected]>
R: Jiri Olsa <[email protected]>
+R: Emil Tsalapatis <[email protected]>
S: Supported
W: https://bpf.io/
@@ -4855,7 +4849,9 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
F: Documentation/bpf/
F: Documentation/networking/filter.rst
F: Documentation/userspace-api/ebpf/
+F: arch/*/include/asm/rqspinlock.h
F: arch/*/net/*
+F: include/asm-generic/rqspinlock.h
F: include/linux/bpf*
F: include/linux/btf*
F: include/linux/buildid.h
@@ -4867,17 +4863,15 @@ F: include/uapi/linux/filter.h
F: kernel/bpf/
F: kernel/trace/bpf_trace.c
F: lib/buildid.c
-F: arch/*/include/asm/rqspinlock.h
-F: include/asm-generic/rqspinlock.h
F: lib/test_bpf.c
F: net/bpf/
F: net/core/filter.c
F: net/sched/act_bpf.c
F: net/sched/cls_bpf.c
F: samples/bpf/
+F: scripts/Makefile.btf
F: scripts/bpf_doc.py
F: scripts/gen-btf.sh
-F: scripts/Makefile.btf
F: scripts/pahole-version.sh
F: tools/bpf/
F: tools/lib/bpf/
@@ -4892,6 +4886,7 @@ F: kernel/bpf/*iter.c
BPF [L7 FRAMEWORK] (sockmap)
M: John Fastabend <[email protected]>
M: Jakub Sitnicki <[email protected]>
+M: Jiayuan Chen <[email protected]>
S: Maintained
@@ -4935,18 +4930,11 @@ F: tools/testing/selftests/bpf/prog_tests/tc_netkit.c
F: tools/testing/selftests/drivers/net/hw/nk_qlease.py
F: tools/testing/selftests/net/nk_qlease.py
-BPF [NETWORKING] (struct_ops, reuseport)
-M: Martin KaFai Lau <[email protected]>
-S: Maintained
-F: kernel/bpf/bpf_struct*
-
BPF [NETWORKING] (tcx & tc BPF, sock_addr)
-M: Martin KaFai Lau <[email protected]>
M: Daniel Borkmann <[email protected]>
R: John Fastabend <[email protected]>
R: Stanislav Fomichev <[email protected]>
+R: Martin KaFai Lau <[email protected]>
S: Maintained
@@ -4981,14 +4969,6 @@ L: [email protected]
S: Maintained
F: tools/testing/selftests/bpf/
-BPF [STORAGE & CGROUPS]
-M: Martin KaFai Lau <[email protected]>
-S: Maintained
-F: kernel/bpf/*storage.c
-F: kernel/bpf/bpf_lru*
-F: kernel/bpf/cgroup.c
-
BPF [TOOLING] (bpftool)
M: Quentin Monnet <[email protected]>

arch/arm64/include/asm/pgtable.h

View file
diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index c9e4e00..27689c6 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -1830,6 +1830,34 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm,
return __ptep_get_and_clear(mm, addr, ptep);
}
+static inline bool ptep_try_set(pte_t *ptep, pte_t new_pte)
+{
+ pteval_t old = 0;
+
+ if (!try_cmpxchg(&pte_val(*ptep), &old, pte_val(new_pte)))
+ return false;
+
+ /*
+ * The store must be complete by the time this returns, but the caller
+ * may be in lazy MMU mode, where __set_pte_complete() would defer the
+ * barriers. Issue them directly.
+ */
+ emit_pte_barriers();
+ return true;
+}
+#define ptep_try_set ptep_try_set
+
+/*
+ * arm64 mandates break-before-make: a cleared kernel PTE must have its TLB
+ * invalidated before a different page is installed in its place. The broadcast
+ * TLBI is an instruction, not an IPI, so this is safe with interrupts disabled.
+ */
+static inline void flush_tlb_before_set(unsigned long addr)
+{
+ flush_tlb_kernel_range(addr, addr + PAGE_SIZE);
+}
+#define flush_tlb_before_set flush_tlb_before_set
+
#define test_and_clear_young_ptes test_and_clear_young_ptes
static inline bool test_and_clear_young_ptes(struct vm_area_struct *vma,
unsigned long addr, pte_t *ptep, unsigned int nr)

arch/arm64/mm/fault.c

View file
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 7398008..85e2338 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -9,6 +9,7 @@
#include <linux/acpi.h>
#include <linux/bitfield.h>
+#include <linux/bpf_defs.h>
#include <linux/extable.h>
#include <linux/kfence.h>
#include <linux/signal.h>
@@ -436,9 +437,12 @@ static void __do_kernel_fault(unsigned long addr, unsigned long esr,
} else if (is_pkvm_stage2_abort(esr)) {
msg = "access to hypervisor-protected memory";
} else {
- if (esr_fsc_is_translation_fault(esr) &&
- kfence_handle_page_fault(addr, esr & ESR_ELx_WNR, regs))
- return;
+ if (esr_fsc_is_translation_fault(esr)) {
+ if (kfence_handle_page_fault(addr, esr & ESR_ELx_WNR, regs))
+ return;
+ if (bpf_arena_handle_page_fault(addr, esr & ESR_ELx_WNR, regs->pc))
+ return;
+ }
msg = "paging request";
}

arch/arm64/net/bpf_jit_comp.c

View file
diff --git a/arch/arm64/net/bpf_jit_comp.c b/arch/arm64/net/bpf_jit_comp.c
index 0816c40..f6bcc0e 100644
--- a/arch/arm64/net/bpf_jit_comp.c
+++ b/arch/arm64/net/bpf_jit_comp.c
@@ -47,7 +47,7 @@
/* Map BPF registers to A64 registers */
static const int bpf2a64[] = {
/* return value from in-kernel function, and exit value from eBPF */
- [BPF_REG_0] = A64_R(7),
+ [BPF_REG_0] = A64_R(8),
/* arguments from eBPF program to in-kernel function */
[BPF_REG_1] = A64_R(0),
[BPF_REG_2] = A64_R(1),
@@ -86,6 +86,7 @@ struct jit_ctx {
__le32 *image;
__le32 *ro_image;
u32 stack_size;
+ u16 stack_arg_size;
u64 user_vm_start;
u64 arena_vm_start;
bool fp_used;
@@ -533,13 +534,20 @@ static int build_prologue(struct jit_ctx *ctx, bool ebpf_from_cbpf)
* | |
* +-----+ <= (BPF_FP - prog->aux->stack_depth)
* |RSVD | padding
- * current A64_SP => +-----+ <= (BPF_FP - ctx->stack_size)
+ * +-----+ <= (BPF_FP - ctx->stack_size)
+ * | |
+ * | ... | outgoing stack args (9+, if any)
+ * | |
+ * current A64_SP => +-----+
* | |
* | ... | Function call stack
* | |
* +-----+
* low
*
+ * Stack args 6-8 are passed in x5-x7, args 9+ at [SP].
+ * Incoming args 9+ are at [A64_FP + 16], [A64_FP + 24], ...
+ * (above the saved FP/LR pair pushed in the callee prologue).
*/
emit_kcfi(is_main_prog ? cfi_bpf_hash : cfi_bpf_subprog_hash, ctx);
@@ -613,6 +621,9 @@ static int build_prologue(struct jit_ctx *ctx, bool ebpf_from_cbpf)
if (ctx->stack_size && !ctx->priv_sp_used)
emit(A64_SUB_I(1, A64_SP, A64_SP, ctx->stack_size), ctx);
+ if (ctx->stack_arg_size)
+ emit(A64_SUB_I(1, A64_SP, A64_SP, ctx->stack_arg_size), ctx);
+
if (ctx->arena_vm_start)
emit_a64_mov_i64(arena_vm_base, ctx->arena_vm_start, ctx);
@@ -673,6 +684,9 @@ static int emit_bpf_tail_call(struct jit_ctx *ctx)
/* Update tail_call_cnt if the slot is populated. */
emit(A64_STR64I(tcc, ptr, 0), ctx);
+ if (ctx->stack_arg_size)
+ emit(A64_ADD_I(1, A64_SP, A64_SP, ctx->stack_arg_size), ctx);
+
/* restore SP */
if (ctx->stack_size && !ctx->priv_sp_used)
emit(A64_ADD_I(1, A64_SP, A64_SP, ctx->stack_size), ctx);
@@ -1034,6 +1048,9 @@ static void build_epilogue(struct jit_ctx *ctx, bool was_classic)
const u8 r0 = bpf2a64[BPF_REG_0];
const u8 ptr = bpf2a64[TCCNT_PTR];
+ if (ctx->stack_arg_size)
+ emit(A64_ADD_I(1, A64_SP, A64_SP, ctx->stack_arg_size), ctx);
+
/* We're done with BPF stack */
if (ctx->stack_size && !ctx->priv_sp_used)
emit(A64_ADD_I(1, A64_SP, A64_SP, ctx->stack_size), ctx);
@@ -1048,7 +1065,7 @@ static void build_epilogue(struct jit_ctx *ctx, bool was_classic)
/* Restore FP/LR registers */
emit(A64_POP(A64_FP, A64_LR, A64_SP), ctx);
- /* Move the return value from bpf:r0 (aka x7) to x0 */
+ /* Move the return value from bpf:r0 (aka x8) to x0 */
emit(A64_MOV(1, A64_R(0), r0), ctx);
/* Authenticate lr */
@@ -1191,6 +1208,42 @@ static int add_exception_handler(const struct bpf_insn *insn,
return 0;
}
+static const u8 stack_arg_reg[] = { A64_R(5), A64_R(6), A64_R(7) };
+
+#define NR_STACK_ARG_REGS ARRAY_SIZE(stack_arg_reg)
+
+static void emit_stack_arg_load(u8 dst, s16 bpf_off, struct jit_ctx *ctx)
+{
+ int idx = bpf_off / sizeof(u64) - 1;
+
+ if (idx < NR_STACK_ARG_REGS)
+ emit(A64_MOV(1, dst, stack_arg_reg[idx]), ctx);
+ else
+ emit(A64_LDR64I(dst, A64_FP, (idx - NR_STACK_ARG_REGS) * sizeof(u64) + 16), ctx);
+}
+
+static void emit_stack_arg_store(u8 src_a64, s16 bpf_off, struct jit_ctx *ctx)
+{
+ int idx = -bpf_off / sizeof(u64) - 1;
+
+ if (idx < NR_STACK_ARG_REGS)
+ emit(A64_MOV(1, stack_arg_reg[idx], src_a64), ctx);
+ else
+ emit(A64_STR64I(src_a64, A64_SP, (idx - NR_STACK_ARG_REGS) * sizeof(u64)), ctx);
+}
+
+static void emit_stack_arg_store_imm(s32 imm, s16 bpf_off, const u8 tmp, struct jit_ctx *ctx)
+{
+ int idx = -bpf_off / sizeof(u64) - 1;
+
+ if (idx < NR_STACK_ARG_REGS) {
+ emit_a64_mov_i(1, stack_arg_reg[idx], imm, ctx);
+ } else {
+ emit_a64_mov_i(1, tmp, imm, ctx);
+ emit(A64_STR64I(tmp, A64_SP, (idx - NR_STACK_ARG_REGS) * sizeof(u64)), ctx);
+ }
+}
+
/* JITs an eBPF instruction.
* Returns:
* 0 - successfully JITed an 8-byte eBPF instruction.
@@ -1646,6 +1699,11 @@ emit_cond_jmp:
case BPF_LDX | BPF_MEM | BPF_H:
case BPF_LDX | BPF_MEM | BPF_B:
case BPF_LDX | BPF_MEM | BPF_DW:
+ if (insn->src_reg == BPF_REG_PARAMS) {
+ emit_stack_arg_load(dst, off, ctx);
+ break;
+ }
+ fallthrough;
case BPF_LDX | BPF_PROBE_MEM | BPF_DW:
case BPF_LDX | BPF_PROBE_MEM | BPF_W:
case BPF_LDX | BPF_PROBE_MEM | BPF_H:
@@ -1672,6 +1730,8 @@ emit_cond_jmp:
if (src == fp) {
src_adj = ctx->priv_sp_used ? priv_sp : A64_SP;
off_adj = off + ctx->stack_size;
+ if (!ctx->priv_sp_used)
+ off_adj += ctx->stack_arg_size;
} else {
src_adj = src;
off_adj = off;
@@ -1752,6 +1812,11 @@ emit_cond_jmp:
case BPF_ST | BPF_MEM | BPF_H:
case BPF_ST | BPF_MEM | BPF_B:
case BPF_ST | BPF_MEM | BPF_DW:
+ if (insn->dst_reg == BPF_REG_PARAMS) {
+ emit_stack_arg_store_imm(imm, off, tmp, ctx);
+ break;
+ }
+ fallthrough;
case BPF_ST | BPF_PROBE_MEM32 | BPF_B:
case BPF_ST | BPF_PROBE_MEM32 | BPF_H:
case BPF_ST | BPF_PROBE_MEM32 | BPF_W:
@@ -1763,6 +1828,8 @@ emit_cond_jmp:
if (dst == fp) {
dst_adj = ctx->priv_sp_used ? priv_sp : A64_SP;
off_adj = off + ctx->stack_size;
+ if (!ctx->priv_sp_used)
+ off_adj += ctx->stack_arg_size;
} else {
dst_adj = dst;
off_adj = off;
@@ -1814,6 +1881,11 @@ emit_cond_jmp:
case BPF_STX | BPF_MEM | BPF_H:
case BPF_STX | BPF_MEM | BPF_B:
case BPF_STX | BPF_MEM | BPF_DW:
+ if (insn->dst_reg == BPF_REG_PARAMS) {
+ emit_stack_arg_store(src, off, ctx);
+ break;
+ }
+ fallthrough;
case BPF_STX | BPF_PROBE_MEM32 | BPF_B:
case BPF_STX | BPF_PROBE_MEM32 | BPF_H:
case BPF_STX | BPF_PROBE_MEM32 | BPF_W:
@@ -1825,6 +1897,8 @@ emit_cond_jmp:
if (dst == fp) {
dst_adj = ctx->priv_sp_used ? priv_sp : A64_SP;
off_adj = off + ctx->stack_size;
+ if (!ctx->priv_sp_used)
+ off_adj += ctx->stack_arg_size;
} else {
dst_adj = dst;
off_adj = off;
@@ -2018,6 +2092,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_verifier_env *env, struct bpf_pr
u8 *ro_image_ptr;
int body_idx;
int exentry_idx;
+ int out_cnt;
if (!prog->jit_requested)
return prog;
@@ -2065,6 +2140,14 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_verifier_env *env, struct bpf_pr
ctx.user_vm_start = bpf_arena_get_user_vm_start(prog->aux->arena);
ctx.arena_vm_start = bpf_arena_get_kern_vm_start(prog->aux->arena);
+ out_cnt = bpf_out_stack_arg_cnt(env, prog);
+ if (out_cnt) {
+ int nr_on_stack = out_cnt - NR_STACK_ARG_REGS;
+
+ if (nr_on_stack > 0)
+ ctx.stack_arg_size = round_up(nr_on_stack * sizeof(u64), 16);
+ }
+
if (priv_stack_ptr)
ctx.priv_sp_used = true;
@@ -2229,6 +2312,11 @@ bool bpf_jit_supports_kfunc_call(void)
return true;
}
+bool bpf_jit_supports_stack_args(void)
+{
+ return true;
+}
+
void *bpf_arch_text_copy(void *dst, void *src, size_t len)
{
if (!aarch64_insn_copy(dst, src, len))
@@ -2247,24 +2335,24 @@ bool bpf_jit_supports_subprog_tailcalls(void)
return true;
}
-static void invoke_bpf_prog(struct jit_ctx *ctx, struct bpf_tramp_link *l,
+static void invoke_bpf_prog(struct jit_ctx *ctx, struct bpf_tramp_node *node,
int bargs_off, int retval_off, int run_ctx_off,
bool save_ret)
{
__le32 *branch;
u64 enter_prog;
u64 exit_prog;
- struct bpf_prog *p = l->link.prog;
+ struct bpf_prog *p = node->link->prog;
int cookie_off = offsetof(struct bpf_tramp_run_ctx, bpf_cookie);
enter_prog = (u64)bpf_trampoline_enter(p);
exit_prog = (u64)bpf_trampoline_exit(p);
- if (l->cookie == 0) {
+ if (node->cookie == 0) {
/* if cookie is zero, one instruction is enough to store it */
emit(A64_STR64I(A64_ZR, A64_SP, run_ctx_off + cookie_off), ctx);
} else {
- emit_a64_mov_i64(A64_R(10), l->cookie, ctx);
+ emit_a64_mov_i64(A64_R(10), node->cookie, ctx);
emit(A64_STR64I(A64_R(10), A64_SP, run_ctx_off + cookie_off),
ctx);
}
@@ -2314,7 +2402,7 @@ static void invoke_bpf_prog(struct jit_ctx *ctx, struct bpf_tramp_link *l,
emit_call(exit_prog, ctx);
}
-static void invoke_bpf_mod_ret(struct jit_ctx *ctx, struct bpf_tramp_links *tl,
+static void invoke_bpf_mod_ret(struct jit_ctx *ctx, struct bpf_tramp_nodes *tn,
int bargs_off, int retval_off, int run_ctx_off,
__le32 **branches)
{
@@ -2324,8 +2412,8 @@ static void invoke_bpf_mod_ret(struct jit_ctx *ctx, struct bpf_tramp_links *tl,
* Set this to 0 to avoid confusing the program.
*/
emit(A64_STR64I(A64_ZR, A64_SP, retval_off), ctx);
- for (i = 0; i < tl->nr_links; i++) {
- invoke_bpf_prog(ctx, tl->links[i], bargs_off, retval_off,
+ for (i = 0; i < tn->nr_nodes; i++) {

This diff is incomplete. Download the complete patch.

arch/arm64/net/bpf_timed_may_goto.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/net/bpf_jit.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/net/bpf_jit_comp.c

View file

This diff is incomplete. Download the complete patch.

arch/riscv/net/bpf_jit_comp64.c

View file

This diff is incomplete. Download the complete patch.

arch/s390/net/bpf_jit_comp.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/mm/fault.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/net/bpf_jit_comp.c

View file

This diff is incomplete. Download the complete patch.

drivers/base/power/power.h

View file

This diff is incomplete. Download the complete patch.

drivers/base/power/wakeup.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/netronome/nfp/bpf/verifier.c

View file

This diff is incomplete. Download the complete patch.

fs/bpf_fs_kfuncs.c

View file

This diff is incomplete. Download the complete patch.

fs/verity/measure.c

View file

This diff is incomplete. Download the complete patch.

include/asm-generic/rqspinlock.h

View file

This diff is incomplete. Download the complete patch.

include/linux/bpf-cgroup.h

View file

This diff is incomplete. Download the complete patch.

include/linux/bpf.h

View file

This diff is incomplete. Download the complete patch.

include/linux/bpf_defs.h

View file

This diff is incomplete. Download the complete patch.

include/linux/bpf_lsm.h

View file

This diff is incomplete. Download the complete patch.

include/linux/bpf_types.h

View file

This diff is incomplete. Download the complete patch.

include/linux/bpf_verifier.h

View file

This diff is incomplete. Download the complete patch.

include/linux/btf.h

View file

This diff is incomplete. Download the complete patch.

include/linux/btf_ids.h

View file

This diff is incomplete. Download the complete patch.

include/linux/cnum.h

View file

This diff is incomplete. Download the complete patch.

include/linux/filter.h

View file

This diff is incomplete. Download the complete patch.

include/linux/ftrace.h

View file

This diff is incomplete. Download the complete patch.

include/linux/pgtable.h

View file

This diff is incomplete. Download the complete patch.

include/linux/rhashtable.h

View file

This diff is incomplete. Download the complete patch.

include/linux/syscalls.h

View file

This diff is incomplete. Download the complete patch.

include/linux/trace_events.h

View file

This diff is incomplete. Download the complete patch.

include/trace/bpf_probe.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/linux/bpf.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/linux/btf.h

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/Makefile

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/arena.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/arraymap.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/backtrack.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/bpf_lru_list.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/bpf_lru_list.h

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/bpf_lsm.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/bpf_struct_ops.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/btf.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/cgroup.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/cnum.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/cnum_defs.h

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/const_fold.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/core.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/devmap.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/fixups.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/hashtab.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/helpers.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/inode.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/liveness.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/log.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/lpm_trie.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/map_in_map.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/map_iter.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/stackmap.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/states.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/syscall.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/trampoline.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/verifier.c

View file

This diff is incomplete. Download the complete patch.

kernel/events/core.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/bpf_trace.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/ftrace.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_syscalls.c

View file

This diff is incomplete. Download the complete patch.

lib/rhashtable.c

View file

This diff is incomplete. Download the complete patch.

lib/test_bpf.c

View file

This diff is incomplete. Download the complete patch.

lib/test_rhashtable.c

View file

This diff is incomplete. Download the complete patch.

net/bpf/bpf_dummy_struct_ops.c

View file

This diff is incomplete. Download the complete patch.

net/bpf/test_run.c

View file

This diff is incomplete. Download the complete patch.

net/core/filter.c

View file

This diff is incomplete. Download the complete patch.

net/core/lwt_bpf.c

View file

This diff is incomplete. Download the complete patch.

net/ipv4/udp_bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/bpf/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/bpf/bpftool/Documentation/bpftool-map.rst

View file

This diff is incomplete. Download the complete patch.

tools/bpf/bpftool/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/bpf/bpftool/btf.c

View file

This diff is incomplete. Download the complete patch.

tools/bpf/bpftool/btf_dumper.c

View file

This diff is incomplete. Download the complete patch.

tools/bpf/bpftool/gen.c

View file

This diff is incomplete. Download the complete patch.

tools/bpf/bpftool/map.c

View file

This diff is incomplete. Download the complete patch.

tools/bpf/bpftool/net.c

View file

This diff is incomplete. Download the complete patch.

tools/build/feature/test-bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/include/uapi/linux/bpf.h

View file

This diff is incomplete. Download the complete patch.

tools/include/uapi/linux/btf.h

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/bpf.h

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/btf.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/btf.h

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/btf_dump.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/features.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/gen_loader.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/libbpf.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/libbpf.h

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/libbpf.map

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/libbpf_internal.h

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/libbpf_probes.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/relo_core.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/skel_internal.h

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/strset.c

View file

This diff is incomplete. Download the complete patch.

tools/lib/bpf/usdt.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/.gitignore

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/README.rst

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/bench.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/bench.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/bench_bpf_timing.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_full_update.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_lookup.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/benchs/bench_bpf_nop.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/benchs/bench_bpf_timing.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/benchs/bench_htab_mem.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/benchs/bench_xdp_lb.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/benchs/run_bench_xdp_lb.sh

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/bpf_arena_alloc.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/bpf_arena_htab.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/bpf_arena_list.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/bpf_arena_strsearch.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/bpf_experimental.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/bpf_kfuncs.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/config

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/default.profraw

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/jit_disasm_helpers.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/include/bpf_arena_common.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/include/bpf_arena_spin_lock.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/include/bpf_atomic.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/include/bpf_may_goto.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/include/libarena/asan.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/include/libarena/buddy.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/include/libarena/common.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/include/libarena/rbtree.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/include/libarena/spmc.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/include/libarena/userspace.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/selftests/st_asan_common.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/selftests/test_parallel_spmc.bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/selftests/test_progs_compat.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/selftests/test_rbtree.bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/selftests/test_spmc.bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/src/asan.bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/src/buddy.bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/src/common.bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/src/rbtree.bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/libarena/src/spmc.bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/arena_direct_value.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/arena_spin_lock.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/bpf_attr_size.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/bpf_cookie.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/bpf_nf.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/bpf_qdisc.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/btf.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/btf_dedup_split.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/btf_dump.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/cb_refs.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/cgrp_local_storage.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/ctx_rewrite.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/exceptions.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/file_reader.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/fill_link_info.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/htab_update.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/iters.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/kfunc_call.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/libarena.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/libarena_asan.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/linked_list.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/lru_lock_nmi.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/lsm_cgroup.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/lwt_ip_encap.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/map_excl.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/map_init.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/map_kptr.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/refcounted_kptr.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/reg_bounds.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/rhash.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/setget_sockopt.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/signed_loader.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/sleepable_tracepoints.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/sockmap_basic.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/spin_lock.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/stack_arg.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/stack_arg_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/stack_arg_precision.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/tailcalls.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/task_kfunc.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/task_local_storage.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/test_lsm.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/test_xdp_veth.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/tracing_multi.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/verifier.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/verifier_log.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/vmlinux.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/prog_tests/wakeup_source.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/arena_atomics.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/arena_spin_lock.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/bench_bpf_timing.bpf.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/bpf_iter_bpf_rhash_map.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/bpf_iter_task_vmas.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/bpf_misc.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/bpf_nop_bench.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/bpf_qdisc_dynptr_use_after_invalidate_clone.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/bpf_qdisc_fail__invalid_dynptr.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/bpf_qdisc_fail__invalid_dynptr_cross_frame.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/bpf_qdisc_fail__invalid_dynptr_slice.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/bpf_qdisc_fq.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/btf__stack_arg_precision.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/btf__verifier_stack_arg_order.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/cgrp_kfunc_failure.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/cgrp_ls_sleepable.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/compute_live_registers.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/cpumask_failure.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/cpumask_success.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/crypto_bench.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/crypto_sanity.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/dynptr_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/dynptr_success.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/exceptions.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/fexit_bpf2bpf.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/file_reader.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/file_reader_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/htab_update.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/irq.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/iters.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/iters_state_safety.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/iters_testmod.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/iters_testmod_seq.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/linked_list.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/lpm_trie_bench.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/lru_lock_nmi.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/lsm_cgroup.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/map_kptr.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/map_kptr_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/percpu_alloc_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/rbtree_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/refcounted_kptr.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/refcounted_kptr_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/rhash.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/setget_sockopt.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/sk_bypass_prot_mem.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/stack_arg.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/stack_arg_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/stack_arg_kfunc.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/stack_arg_precision.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/stream.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/stream_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tailcall_bpf2bpf2.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy1.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy2.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy3.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy_fentry.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tailcall_cgrp_storage.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tailcall_cgrp_storage_no_storage.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tailcall_cgrp_storage_owner.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/task_kfunc_failure.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/task_kfunc_success.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/task_local_storage.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/task_work_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_bpf_nf_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_fill_link_info.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_global_func3.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_kfunc_dynptr_param.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_kfunc_param_nullable.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_lirc_mode2_kern.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_lwt_ip_encap.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_ringbuf_map_key.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_signed_loader.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_signed_loader_data.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_signed_loader_lsm.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_signed_loader_map.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_sleepable_tracepoints.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_sleepable_tracepoints_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_sockmap_msg_pop_data.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_tunnel_kern.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_vmlinux.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/test_wakeup_source.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tracing_multi_attach.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tracing_multi_attach_module.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tracing_multi_bench.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tracing_multi_check.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tracing_multi_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tracing_multi_intersect_attach.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tracing_multi_rollback.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tracing_multi_session_attach.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/tracing_multi_verifier.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/user_ringbuf_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_arena.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_arena_globals1.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_arena_globals2.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_arena_large.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_bits_iter.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_bounds.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_bpf_fastcall.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_flow_keys.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_global_ptr_args.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_global_subprogs.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_jit_inline.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_ldsx.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_liveness_exp.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_lsm.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_map_in_map.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_map_ptr.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_may_goto_1.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_private_stack.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_ref_tracking.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_scalar_ids.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_sdiv.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_set_retval.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_sock.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_stack_arg.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_stack_arg_order.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_subreg.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_tailcall_jit.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/verifier_vfs_reject.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/wakeup_source.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/wakeup_source_fail.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/wq_failures.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/xdp_flowtable.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/xdp_lb_bench.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/progs/xdping_kern.c

View before deletion

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/test_kmods/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/test_kmods/bpf_testmod.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/test_kmods/bpf_testmod_kfunc.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/test_lirc_mode2_user.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/test_loader.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/test_maps.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/test_progs.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/test_progs.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/test_xdping.sh

View before deletion

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/testing_helpers.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/testing_helpers.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/trace_helpers.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/trace_helpers.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/uprobe_multi.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/verifier/calls.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/verifier/sleepable.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/veristat.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/vmtest.sh

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/xdp_lb_bench_common.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/xdping.c

View before deletion

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/xdping.h

View before deletion

This diff is incomplete. Download the complete patch.