linux/kernel/bpf
Linus Torvalds 46806af187 bpf-fixes
-----BEGIN PGP SIGNATURE-----
 
 iQJRBAABCgA7FiEE+soXsSLHKoYyzcli6rmadz2vbToFAmrjbZEdHGFsZXhlaS5z
 dGFyb3ZvaXRvdkBnbWFpbC5jb20ACgkQ6rmadz2vbTqGEQ//bqWuSeYGypshirYQ
 4rxejupvJBJmrD+pI3MSDKVDaLgslm2vW8+vYB+rxpwzje4EsBtVqoHVxzk4yMoQ
 WyuJ7988W3RRZw5x5EEruS65C2pM5H2Ilzj2f8Z5gYUfvB72/TGJD2sDXxlTAtUb
 ESujBo/M9JRyYZBE5SMJT00r17clwf8NHoT3nr1FKAaDLQopE2zAnE/RwB1lEm3V
 MtUcnyDWEwu9ITOxMAwymzYI4FHadqxLJ5MCyCFUeqWAkJcPoVGHWN9Z/0cLTBYt
 46PZIotJUEio1PsF6/3y0ZAS2whCAzBuuQCcRG1qBoOdczaDN8fl7RAuTvFmSpPJ
 H5Z1GUAXvoFAPpfb9upwYwrEc5hH7+4w9LsGjEumKZ2kHzPccH8K3jtUJRRvYiL8
 W7LH4iiu/yPvYHKsgt89csGy6uoACUTn3Xbgfho4DzMoOO8Q8Ahw3SKMpPLIXPk2
 1q8Olv9d2pdaVRVJ4qXGPV4510LXW5KwDBHiztZKij8HvasPJS4goaTRKOSIqYOx
 GCWCuyM4F22N1suHyUZea507PPVFBKcNBRXWt3nNbKWZNFXpayyS2UI/3kusFFuD
 +EFcu0sNDENJ04/SGgujswvGGYrahT8AsHSkwM8jMpiajBiI0ozjWyLwVYk17mAY
 WrPIg+X/Uh5nxk5o5RIbniOJ8l8=
 =kHds
 -----END PGP SIGNATURE-----

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

Pull bpf fixes from Alexei Starovoitov:

 - Remove BPF_F_ARENA_SCALAR flag and .arena.data section in libbpf that
   were added for rust-bpf in this merge window. We found a cleaner
   approach that does it on compiler side instead of kernel/libbpf. No
   released kernel has them (Alexei Starovoitov)

 - Fix bpf_send_signal_task() returning -EPERM when it is called from a
   kernel thread (Aditya Sharma)

 - Various fixes (Alexei Starovoitov):
     - Use emit_rsb_call() to call bpf_unwind_target() in x86 JIT to fix
       objtool warning during the build
     - Fix scalar evolution: clear delta of a widened register, don't
       widen a pointer to a buffer, don't clamp a register whose type
       changed in the loop, and reset the range of a clamped packet
       pointer
     - Finish the insn in the state that maybe_fork_scalars() splits
       off, so that pruning doesn't drop it at the head of a counted
       loop
     - Preserve the registers that carry stack arguments across
       arch_bpf_timed_may_goto() on x86-64, arm64 and riscv64
     - Don't re-sort subprog_info[] for every new subprogram
     - Fix flaky map_kptr and rcu_reentry selftests

 - Use memmove() in bpf_skb_load_bytes(), bpf_skb_load_bytes_relative()
   and bpf_xdp_load_bytes(), since the destination can be a slice of the
   same packet (Ayushman Rout)

 - Fixes and follow-ups for scalar evolution: reject pointer operands in
   32-bit recurrences and latches, don't intersect with the current
   register range on clamp to avoid a false 'verifier bug', avoid false
   infinite loop reports, and recognize a 32-bit copy of the induction
   variable (Eduard Zingerman)

 - Fix out-of-bounds write to btf->types[] for split BTF and propagate
   btf_add_type() errors in btf_check_all_metas() (Feng Yang)

 - Fix use-after-free in bpf_timer callback that fires after its inner
   map was freed (Mani Tofigh)

 - Fix x86 JIT stopping before jumps converge: size backward jumps by
   the insns they jump over (Mykyta Yatsenko)

 - Fix use-after-free of struct_ops trampoline: dissociate struct_ops
   progs before the grace period of the map (Qiliang Yuan)

 - Validate stack argument reads against the caller state to fix
   out-of-bounds read in the verifier, and reject callbacks with stack
   arguments (Weiming Shi)

 - Tie borrowed iterator results and pointers loaded from trusted fields
   to the lifetime of their source, so that iterator next, destroy and
   reference release invalidate them (Xu Yunxiang)

* tag 'bpf-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf: (48 commits)
  bpf: Don't re-sort subprog_info[] for every new subprogram
  bpf: Fix out-of-bounds btf->types write for split BTF
  selftests/bpf: Test stack arguments across may_goto
  bpf: Keep stack arguments in arch_bpf_timed_may_goto()
  selftests/bpf: Test maybe_fork_scalars() at the head of a counted loop
  bpf: Finish the insn in the state that maybe_fork_scalars() splits off
  selftests/bpf: Test the clamp of pointers in scalar evolution
  bpf: Reset the range of a packet pointer that scalar evolution clamps
  bpf: Don't clamp a register whose type changed in the loop
  selftests/bpf: Test a loop that moves a pointer to a buffer
  bpf: Don't widen a pointer to a buffer in scalar evolution
  selftests/bpf: Avoid a page fault in rcu_reentry while the handler is armed
  selftests/bpf: Wait for the last maps of map_kptr to be freed
  selftests/bpf: Test that a widened register is not linked
  bpf: Clear delta of a register that scalar evolution widens
  bpf, x86: Remove r0_on_stack from fetching atomics in arena
  bpf: Remove BPF_F_ARENA_SCALAR
  selftests/bpf: Remove tests for arena access through numbers
  libbpf: Keep format strings of bpf_printk() in .rodata
  libbpf: Remove .arena.data
  ...
2026-10-29 08:10:23 -10:00
..
preload
arena.c mm.git review status for linus..mm-stable 2026-10-27 12:23:17 -10:00
arraymap.c bpf: Fix incorrect handling of user flags in bpf_percpu_array_update 2026-10-18 22:52:05 +00:00
backtrack.c bpf: Allow precision backtracking between overlapping checkpoints 2026-10-09 20:29:14 +00:00
bloom_filter.c bpf: Harden bloom filter sizing and indexing on 32-bit kernels 2026-08-05 11:45:20 -07:00
bpf_cgrp_storage.c bpf: Remove gfp_flags plumbing from bpf_local_storage_update() 2026-04-10 21:22:32 -07:00
bpf_inode_storage.c bpf: Reject BPF_MAP_TYPE_INODE_STORAGE creation if BPF LSM is uninitialized 2026-06-30 16:31:56 +02:00
bpf_insn_array.c bpf: Retarget indirect jump targets across prologue prepends 2026-09-25 21:02:31 +00:00
bpf_iter.c bpf-next-7.4 2026-10-23 13:08:49 -10:00
bpf_local_storage.c bpf: Keep values of a dead owner for sleepable programs 2026-10-18 00:36:43 +00:00
bpf_lru_list.c bpf: Annotate data races on bpf_lru_node type 2026-10-20 00:20:22 +00:00
bpf_lru_list.h bpf: Fix NMI/tracepoint re-entry deadlock on lru locks 2026-06-07 18:46:13 -07:00
bpf_lsm_proto.c bpf, lsm: Mark the BPF LSM hook overrides noinline 2026-09-19 19:03:14 +00:00
bpf_lsm.c bpf, lsm: Let BPF LSM provide xattrs at inode creation 2026-09-19 19:03:14 +00:00
bpf_struct_ops.c bpf: Dissociate struct_ops progs before the grace period of the map 2026-10-24 03:48:42 +00:00
bpf_task_storage.c bpf: Remove gfp_flags plumbing from bpf_local_storage_update() 2026-04-10 21:22:32 -07:00
btf_iter.c
btf_relocate.c
btf_vmlinux_inline.c kbuild, btf: Expose vmlinux inline BTF through sysfs 2026-10-11 14:18:06 +00:00
btf.c bpf: Fix out-of-bounds btf->types write for split BTF 2026-10-28 04:13:15 +00:00
cfg.c bpf: Let bpf_dynptr_write() mark a global function 2026-10-18 00:36:43 +00:00
cgroup_iter.c
cgroup.c bpf, cgroup: Fix cgroup struct_ops query for a second attach type 2026-10-01 15:39:24 +00:00
check_btf.c bpf: Apply CO-RE relocations before subprogram validation 2026-09-17 18:01:42 -07:00
cnum_defs.h bpf: Add cnum{32,64}_union() 2026-10-09 20:29:13 +00:00
cnum.c bpf: Add cnum64_intersect_linear() 2026-10-09 20:29:13 +00:00
const_fold.c bpf: Add unwind_goto and unwind_exit insns 2026-10-20 20:54:25 +00:00
core.c bpf: Remove BPF_F_ARENA_SCALAR 2026-10-28 04:07:02 +00:00
cpumap.c bpf, cpumap: Hold the device of frames in the queue 2026-10-18 00:36:43 +00:00
cpumask.c bpf: Require a BPF cpumask for bpf_cpumask_populate() 2026-07-12 01:52:36 +02:00
crypto.c bpf: crypto: Use AES-CBC and AES-ECB libraries 2026-09-24 19:56:06 +00:00
devmap.c bpf: Use the frame mem type in devmap egress XDP 2026-10-17 21:58:22 +00:00
diagnostics.c bpf-next-7.4 2026-10-23 13:08:49 -10:00
diagnostics.h bpf: Admit kfunc argument registers through check_reg_type() 2026-09-11 20:16:04 -07:00
disasm.c bpf: Add unwind_goto and unwind_exit insns 2026-10-20 20:54:25 +00:00
disasm.h
dispatcher.c bpf: dispatcher: Allocate bpf_dispatcher->rw_image with vzalloc() 2026-07-22 17:26:39 +02:00
dmabuf_iter.c
fixups.c bpf: Remove BPF_F_ARENA_SCALAR 2026-10-28 04:07:02 +00:00
hashtab.c bpf: Fix incorrect handling of user flags by percpu hash map updates 2026-10-18 22:52:05 +00:00
helpers.c bpf: Fix bpf_timer callback running on a freed map 2026-10-27 19:32:26 +00:00
inode.c fs: port ->symlink() to pass const mnt_idmap 2026-09-23 09:19:50 +02:00
Kconfig bpf: crypto: Use AES-CBC and AES-ECB libraries 2026-09-24 19:56:06 +00:00
keys.c bpf: Refuse caller-supplied keyrings when the bpf one is active 2026-08-29 18:17:50 -07:00
kmem_cache_iter.c
link_iter.c
liveness.c bpf: Move the live-register and SCC printout to a standalone function 2026-10-09 20:29:13 +00:00
local_storage.c bpf: Fix percpu map update indexing with sparse CPU IDs 2026-08-21 10:41:27 -07:00
log.c bpf: Print 32-bit SCEV bounds as 32-bit numbers 2026-10-27 16:26:21 +00:00
loops.c bpf: Record basic-block ends in insn_aux_data 2026-10-09 20:29:14 +00:00
lpm_trie.c bpf: Allow LPM map access from sleepable BPF programs 2026-06-09 12:42:22 -07:00
Makefile kbuild, btf: Expose vmlinux inline BTF through sysfs 2026-10-11 14:18:06 +00:00
map_in_map.c bpf: Keep values of a dead owner for sleepable programs 2026-10-18 00:36:43 +00:00
map_in_map.h
map_iter.c bpf: Keep iterator programs off special map fields 2026-10-17 22:01:15 +00:00
memalloc.c bpf: Fix objects stuck in free_by_rcu_ttrace 2026-10-01 18:40:04 +02:00
mmap_unlock_work.h bpf: Fix mmap_lock leak in irq_work path 2026-08-08 10:25:36 +02:00
mprog.c
net_namespace.c bpf: Fix potential UAF in bpf_netns_link_update_prog 2026-07-30 15:28:46 -07:00
offload.c bpf: Don't bind a program to a netdev that goes away 2026-10-17 22:01:14 +00:00
percpu_freelist.c bpf: Fix infinite loop in pcpu_freelist push with one possible CPU 2026-08-20 20:44:16 +02:00
percpu_freelist.h bpf: Fix infinite loop in pcpu_freelist push with one possible CPU 2026-08-20 20:44:16 +02:00
prog_iter.c
queue_stack_maps.c bpf: Fix queue/stack map u32 index overflow 2026-09-02 16:24:11 -07:00
range_tree.c bpf: Fix range_tree_set inconsistency on kmalloc_nolock failure in arena 2026-09-24 01:56:14 +00:00
range_tree.h
relo_core.c
reuseport_array.c
ringbuf.c bpf: Describe helper stack accesses with arg_access_info 2026-10-09 20:29:12 +00:00
rqspinlock.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf 7.2-rc7 2026-08-07 23:04:17 +02:00
rqspinlock.h
scev.c bpf: Reset the range of a packet pointer that scalar evolution clamps 2026-10-28 04:07:03 +00:00
stackmap.c mm: make per-VMA locks available universally 2026-10-06 17:39:10 -07:00
states.c bpf: Avoid false infinite loop reports after changes in SCEV clamping 2026-10-27 16:26:21 +00:00
stream.c bpf: Add file descriptor interface for program streams 2026-09-25 21:04:35 +00:00
syscall.c bpf: Remove BPF_F_ARENA_SCALAR 2026-10-28 04:07:02 +00:00
sysfs_btf.c kbuild, btf: Expose vmlinux inline BTF through sysfs 2026-10-11 14:18:06 +00:00
task_iter.c bpf-next-7.4 2026-10-23 13:08:49 -10:00
tcx.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
tnum.c bpf: Add tnum_alignment() 2026-10-09 20:29:13 +00:00
token.c bpf-next-7.4 2026-10-23 13:08:49 -10:00
trampoline.c bpf: Drop unnecessary ftrace_location() in register/unregister/modify_fentry_multi() 2026-10-16 16:47:47 +00:00
verifier.c bpf: Don't re-sort subprog_info[] for every new subprogram 2026-10-28 04:20:25 +00:00