Merge tag 'bpf-next-6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 28 May 2025 22:52:42 +0000 (15:52 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 28 May 2025 22:52:42 +0000 (15:52 -0700)
Pull bpf updates from Alexei Starovoitov:

 - Fix and improve BTF deduplication of identical BTF types (Alan
   Maguire and Andrii Nakryiko)

 - Support up to 12 arguments in BPF trampoline on arm64 (Xu Kuohai and
   Alexis LothorĂ©)

 - Support load-acquire and store-release instructions in BPF JIT on
   riscv64 (Andrea Parri)

 - Fix uninitialized values in BPF_{CORE,PROBE}_READ macros (Anton
   Protopopov)

 - Streamline allowed helpers across program types (Feng Yang)

 - Support atomic update for hashtab of BPF maps (Hou Tao)

 - Implement json output for BPF helpers (Ihor Solodrai)

 - Several s390 JIT fixes (Ilya Leoshkevich)

 - Various sockmap fixes (Jiayuan Chen)

 - Support mmap of vmlinux BTF data (Lorenz Bauer)

 - Support BPF rbtree traversal and list peeking (Martin KaFai Lau)

 - Tests for sockmap/sockhash redirection (Michal Luczaj)

 - Introduce kfuncs for memory reads into dynptrs (Mykyta Yatsenko)

 - Add support for dma-buf iterators in BPF (T.J. Mercier)

 - The verifier support for __bpf_trap() (Yonghong Song)

* tag 'bpf-next-6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next: (135 commits)
  bpf, arm64: Remove unused-but-set function and variable.
  selftests/bpf: Add tests with stack ptr register in conditional jmp
  bpf: Do not include stack ptr register in precision backtracking bookkeeping
  selftests/bpf: enable many-args tests for arm64
  bpf, arm64: Support up to 12 function arguments
  bpf: Check rcu_read_lock_trace_held() in bpf_map_lookup_percpu_elem()
  bpf: Avoid __bpf_prog_ret0_warn when jit fails
  bpftool: Add support for custom BTF path in prog load/loadall
  selftests/bpf: Add unit tests with __bpf_trap() kfunc
  bpf: Warn with __bpf_trap() kfunc maybe due to uninitialized variable
  bpf: Remove special_kfunc_set from verifier
  selftests/bpf: Add test for open coded dmabuf_iter
  selftests/bpf: Add test for dmabuf_iter
  bpf: Add open coded dmabuf iterator
  bpf: Add dmabuf iterator
  dma-buf: Rename debugfs symbols
  bpf: Fix error return value in bpf_copy_from_user_dynptr
  libbpf: Use mmap to parse vmlinux BTF from sysfs
  selftests: bpf: Add a test for mmapable vmlinux BTF
  btf: Allow mmap of vmlinux btf
  ...

15 files changed:
1  2 
arch/arm64/net/bpf_jit_comp.c
drivers/dma-buf/dma-buf.c
include/asm-generic/vmlinux.lds.h
include/linux/bpf-cgroup.h
include/linux/dma-buf.h
include/uapi/linux/bpf.h
kernel/bpf/btf.c
kernel/bpf/cgroup.c
kernel/sched/ext.c
kernel/trace/trace_uprobe.c
net/core/filter.c
tools/include/uapi/linux/bpf.h
tools/lib/bpf/libbpf.h
tools/testing/selftests/bpf/bench.c
tools/testing/selftests/bpf/config

Simple merge
Simple merge
Simple merge
@@@ -426,14 -427,10 +426,12 @@@ int cgroup_bpf_prog_query(const union b
  
  const struct bpf_func_proto *
  cgroup_common_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog);
- const struct bpf_func_proto *
- cgroup_current_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog);
  #else
  
 -static inline int cgroup_bpf_inherit(struct cgroup *cgrp) { return 0; }
 -static inline void cgroup_bpf_offline(struct cgroup *cgrp) {}
 +static inline void cgroup_bpf_lifetime_notifier_init(void)
 +{
 +      return;
 +}
  
  static inline int cgroup_bpf_prog_attach(const union bpf_attr *attr,
                                         enum bpf_prog_type ptype,
Simple merge
Simple merge
@@@ -6387,12 -6388,11 +6388,11 @@@ static bool is_void_or_int_ptr(struct b
  {
        /* skip modifiers */
        t = btf_type_skip_modifiers(btf, t->type, NULL);
-       return btf_type_is_int(t);
+       return btf_type_is_void(t) || btf_type_is_int(t);
  }
  
 -static u32 get_ctx_arg_idx(struct btf *btf, const struct btf_type *func_proto,
 -                         int off)
 +u32 btf_ctx_arg_idx(struct btf *btf, const struct btf_type *func_proto,
 +                  int off)
  {
        const struct btf_param *args;
        const struct btf_type *t;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge