[GIT PULL] BPF changes for v6.12

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

The following changes since commit 872cf28b8df9c5c3a1e71a88ee750df7c2513971:

  Merge tag 'platform-drivers-x86-v6.11-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86 (2024-08-22 06:34:27 +0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git tags/bpf-next-6.12

for you to fetch changes up to 5277d130947ba8c0d54c16eed89eb97f0b6d2e5a:

  btf: require pahole 1.21+ for DEBUG_INFO_BTF with default DWARF version (2024-09-13 20:03:29 -0700)

----------------------------------------------------------------
= BPF networking changes will come via net-next pull-req as discussed

= In addition, Al's struct-fd bpf related changes and Andrii's fd
  cleanups will be sent as a separate pull-req. Currently
  waiting in bpf-next/struct_fd branch.

= The following are the main BPF changes (there should be no conflicts):

- Introduce __attribute__((bpf_fastcall) for helpers and kfuncs
  with corresponding support in LLVM. It is similar to existing
  no_caller_saved_registers attribute in GCC/LLVM with a provision
  for backward compatibility. It allows compilers generate more
  efficient BPF code assuming the verifier or JITs will inline
  or partially inline a helper/kfunc with such attribute.
  bpf_cast_to_kern_ctx, bpf_rdonly_cast, bpf_get_smp_processor_id
  are the first set of such helpers.

- Harden and extend ELF build ID parsing logic. When called from
  sleepable context the relevants parts of ELF file will be read
  to find and fetch .note.gnu.build-id information. Also harden
  the logic to avoid TOCTOU, overflow, out-of-bounds problems.

- Improvements and fixes for sched-ext
  . Allow passing BPF iterators as kfunc arguments
  . Make the pointer returned from iter_next method trusted
  . Fix x86 JIT convergence issue due to growing/shrinking
    conditional jumps in variable length encoding

- BPF_LSM related
  . Introduce few VFS kfuncs and consolidate them in
    fs/bpf_fs_kfuncs.c
  . Enforce correct range of return values from certain LSM hooks
  . Disallow attaching to other LSM hooks 

- Prerequisite work for upcoming Qdisc in BPF
  . Allow kptrs in program provided structs
  . Support for gen_epilogue in verifier_ops

- Important fixes
  . Fix uprobe multi pid filter check
  . Fix bpf_strtol and bpf_strtoul helpers
  . Track equal scalars history on per-instruction level
  . Fix tailcall hierarchy on x86 and arm64
  . Fix signed division overflow to prevent INT_MIN/-1 trap on x86
  . Fix get kernel stack in BPF progs attached to tracepoint:syscall

- Selftests related
  . Add uprobe bench/stress tool
  . Generate file dependencies to drastically improve re-build time
  . Match JIT-ed and BPF asm with __xlated/__jited keywords
  . Convert older tests to test_progs framework
  . Add support for RISC-V
  . Few fixes when BPF programs are compiled with GCC-BPF backend
    (support for GCC-BPF in BPF CI is ongoing in parallel)
  . Add traffic monitor
  . Enable cross compile and musl libc

Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx>
----------------------------------------------------------------
Alan Maguire (1):
      libbpf: Fix license for btf_relocate.c

Alexei Starovoitov (21):
      Merge branch 'bpf-fix-tailcall-hierarchy'
      Merge branch 'bpf-retire-the-unsupported_ops-usage-in-struct_ops'
      Merge branch 'add-bpf-lsm-return-value-range-check-bpf-part'
      selftests/bpf: Workaround strict bpf_lsm return value check.
      Merge branch 'no_caller_saved_registers-attribute-for-helper-calls'
      Merge branch 'bpf-introduce-new-vfs-based-bpf-kfuncs'
      Merge branch 'add-bpf_get_dentry_xattr'
      Merge branch 'support-passing-bpf-iterator-to-kfuncs'
      Merge branch '__jited-test-tag-to-check-disassembly-after-jit'
      Merge branch 'bpf-fix-null-pointer-access-for-malformed-bpf_core_type_id_local-relos'
      Merge branch 'support-bpf_fastcall-patterns-for-calls-to-kfuncs'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
      Merge branch 'follow-up-for-__jited-test-tag'
      Merge branch 'support-bpf_kptr_xchg-into-local-kptr'
      Merge branch 'bpf-arm64-simplify-jited-prologue-epilogue'
      Merge branch 'bpf-add-gen_epilogue-to-bpf_verifier_ops'
      Merge branch 'bpf-follow-up-on-gen_epilogue'
      Merge branch 'local-vmtest-enhancement-and-rv64-enabled'
      Merge branch 'allow-kfuncs-in-tracepoint-and-perf-event'
      Merge branch 'harden-and-extend-elf-build-id-parsing-logic'
      Merge branch 'two-tiny-fixes-for-btf-record'

Alexey Gladkov (1):
      bpf: Remove custom build rule

Alexis Lothoré (eBPF Foundation) (9):
      selftests/bpf: Update xdp_redirect_map prog sections for libbpf
      selftests/bpf: Integrate test_xdp_veth into test_progs
      selftests/bpf: do not disable /dev/null device access in cgroup dev test
      selftests/bpf: convert test_dev_cgroup to test_progs
      selftests/bpf: add wrong type test to cgroup dev
      selftests/bpf: convert get_current_cgroup_id_user to test_progs
      selftests/bpf: convert test_cgroup_storage to test_progs
      selftests/bpf: add proper section name to bpf prog and rename it
      selftests/bpf: convert test_skb_cgroup_id_user to test_progs

Amery Hung (2):
      bpf: Let callers of btf_parse_kptr() track life cycle of prog btf
      selftests/bpf: Make sure stashed kptr in local kptr is freed recursively

Andrew Kreimer (1):
      bpftool: Fix typos

Andrii Nakryiko (27):
      Merge branch 'bpf-track-find_equal_scalars-history-on-per-instruction-level'
      Merge branch 'selftests-bpf-add-more-uprobe-multi-tests'
      Merge branch 'selftests-bpf-improve-libc-portability-musl-support-part-1'
      selftests/bpf: fix RELEASE=1 compilation for sock_addr.c
      Merge branch 'bpf-enable-some-functions-in-cgroup-programs'
      Merge branch 'correct-recent-gcc-incompatible-changes'
      bpf: extract iterator argument type and name validation logic
      bpf: allow passing struct bpf_iter_<type> as kfunc arguments
      selftests/bpf: test passing iterator to a kfunc
      selftests/bpf: make use of PROCMAP_QUERY ioctl if available
      selftests/bpf: add multi-uprobe benchmarks
      libbpf: Fix bpf_object__open_skeleton()'s mishandling of options
      Merge branch 'fix-accessing-first-syscall-argument-on-rv64'
      Merge branch 'selftests-bpf-add-uprobe-multi-pid-filter-test'
      bpf: change int cmd argument in __sys_bpf into typed enum bpf_cmd
      MAINTAINERS: record lib/buildid.c as owned by BPF subsystem
      lib/buildid: harden build ID parsing logic
      lib/buildid: add single folio-based file reader abstraction
      lib/buildid: take into account e_phoff when fetching program headers
      lib/buildid: remove single-page limit for PHDR search
      lib/buildid: rename build_id_parse() into build_id_parse_nofault()
      lib/buildid: implement sleepable build_id_parse() API
      lib/buildid: don't limit .note.gnu.build-id to the first page in ELF
      bpf: decouple stack_map_get_build_id_offset() from perf_callchain_entry
      bpf: wire up sleepable bpf_get_stack() and bpf_get_task_stack() helpers
      selftests/bpf: add build ID tests
      Merge branch 'bpf-add-percpu-map-value-size-check'

Artem Savkov (1):
      selftests/bpf: Fix compilation failure when CONFIG_NET_FOU!=y

Cupertino Miranda (2):
      selftests/bpf: Disable strict aliasing for verifier_nocsr.c
      selftest/bpf: Adapt inline asm operand constraint for GCC support

Daniel Borkmann (9):
      bpf: Fix bpf_strtol and bpf_strtoul helpers for 32bit
      bpf: Remove truncation test in bpf_strtol and bpf_strtoul helpers
      bpf: Fix helper writes to read-only maps
      bpf: Improve check_raw_mode_ok test for MEM_UNINIT-tagged types
      bpf: Zero former ARG_PTR_TO_{LONG,INT} args in case of error
      selftests/bpf: Fix ARG_PTR_TO_LONG {half-,}uninitialized test
      selftests/bpf: Rename ARG_PTR_TO_LONG test description
      selftests/bpf: Add a test case to write strtol result into .rodata
      selftests/bpf: Add a test case to write mtu result into .rodata

Dave Marchevsky (4):
      bpf: Search for kptrs in prog BTF structs
      bpf: Rename ARG_PTR_TO_KPTR -> ARG_KPTR_XCHG_DEST
      bpf: Support bpf_kptr_xchg into local kptr
      selftests/bpf: Test bpf_kptr_xchg stashing into local kptr

David Vernet (2):
      libbpf: Don't take direct pointers into BTF data from st_ops
      selftests/bpf: Load struct_ops map in global_maps_resize test

Donald Hunter (1):
      docs/bpf: Add missing BPF program types to docs

Eduard Zingerman (37):
      bpf: Track equal scalars history on per-instruction level
      bpf: Remove mark_precise_scalar_ids()
      selftests/bpf: Tests for per-insn sync_linked_regs() precision tracking
      selftests/bpf: Update comments find_equal_scalars->sync_linked_regs
      bpf: add a get_helper_proto() utility function
      bpf: no_caller_saved_registers attribute for helper calls
      bpf, x86, riscv, arm: no_caller_saved_registers for bpf_get_smp_processor_id()
      selftests/bpf: extract utility function for BPF disassembly
      selftests/bpf: print correct offset for pseudo calls in disasm_insn()
      selftests/bpf: no need to track next_match_pos in struct test_loader
      selftests/bpf: extract test_loader->expect_msgs as a data structure
      selftests/bpf: allow checking xlated programs in verifier_* tests
      selftests/bpf: __arch_* macro to limit test cases to specific archs
      selftests/bpf: test no_caller_saved_registers spill/fill removal
      selftests/bpf: less spam in the log for message matching
      selftests/bpf: correctly move 'log' upon successful match
      selftests/bpf: fix to avoid __msg tag de-duplication by clang
      selftests/bpf: replace __regex macro with "{{...}}" patterns
      selftests/bpf: utility function to get program disassembly after jit
      selftests/bpf: __jited test tag to check disassembly after jit
      selftests/bpf: validate jit behaviour for tail calls
      selftests/bpf: validate __xlated same way as __jited
      bpf: correctly handle malformed BPF_CORE_TYPE_ID_LOCAL relos
      selftests/bpf: test for malformed BPF_CORE_TYPE_ID_LOCAL relocation
      bpf: rename nocsr -> bpf_fastcall in verifier
      selftests/bpf: rename nocsr -> bpf_fastcall in selftests
      bpf: support bpf_fastcall patterns for kfuncs
      bpf: allow bpf_fastcall for bpf_cast_to_kern_ctx and bpf_rdonly_cast
      selftests/bpf: by default use arch mask allowing all archs
      selftests/bpf: check if bpf_fastcall is recognized for kfuncs
      selftests/bpf: test_loader.c:get_current_arch() should not return 0
      selftests/bpf: match both retq/rethunk in verifier_tailcall_jit
      selftests/bpf: #define LOCAL_LABEL_LEN for jit_disasm_helpers.c
      selftests/bpf: use simply-expanded variables for libpcap flags
      selftests/bpf: attach struct_ops maps before test prog runs
      selftests/bpf: Check if distilled base inherits source endianness
      selftests/bpf: Prefer static linking for LLVM libraries

Feng Yang (1):
      selftests: bpf: Replace sizeof(arr)/sizeof(arr[0]) with ARRAY_SIZE

Geliang Tang (7):
      selftests/bpf: Drop type of connect_to_fd_opts
      selftests/bpf: Drop must_fail from network_helper_opts
      selftests/bpf: Add connect_to_addr_str helper
      selftests/bpf: Drop make_client in sk_lookup
      selftests/bpf: Drop make_socket in sk_lookup
      selftests/bpf: Drop inetaddr_len in sk_lookup
      selftests/bpf: Drop __start_server in network_helpers

Hao Ge (1):
      selftests/bpf: Fix incorrect parameters in NULL pointer checking

Hongbo Li (1):
      bpf: Use kvmemdup to simplify the code

Hou Tao (2):
      bpf: Call the missed btf_record_free() when map creation fails
      bpf: Call the missed kfree() when there is no special field in btf

Ihor Solodrai (6):
      selftests/bpf: Use auto-dependencies for test objects
      selftests/bpf: Don't include .d files on make clean
      selftests/bpf: Make %.test.d prerequisite order only
      selftests/bpf: Specify libbpf headers required for %.bpf.o progs
      selftests/bpf: Do not update vmlinux.h unnecessarily
      libbpf: Add bpf_object__token_fd accessor

JP Kobryn (2):
      bpf: allow kfuncs within tracepoint and perf event programs
      bpf/selftests: coverage for tp and perf event progs using kfuncs

Jeongjun Park (1):
      bpf: Remove __btf_name_valid() and change to btf_name_valid_identifier()

Jiangshan Yi (1):
      samples/bpf: Fix compilation errors with cf-protection option

Jinjie Ruan (1):
      bpf: Use sockfd_put() helper

Jiri Olsa (7):
      selftests/bpf: Add uprobe fail tests for uprobe multi
      selftests/bpf: Add uprobe multi consumers test
      bpf: Fix uprobe multi pid filter check
      selftests/bpf: Add child argument to spawn_child function
      selftests/bpf: Add uprobe multi pid filter test for fork-ed processes
      selftests/bpf: Add uprobe multi pid filter test for clone-ed processes
      libbpf: Fix uretprobe.multi.s programs auto attachment

Jordan Rome (2):
      bpf: Add bpf_copy_from_user_str kfunc
      selftests/bpf: Add tests for bpf_copy_from_user_str kfunc.

Juntong Deng (4):
      bpf: Relax KF_ACQUIRE kfuncs strict type matching constraint
      selftests/bpf: Add test for zero offset or non-zero offset pointers as KF_ACQUIRE kfuncs argument
      bpf: Make the pointer returned by iter next method valid
      selftests/bpf: Add tests for iter next method returning valid pointer

Kuan-Wei Chiu (2):
      bpftool: Fix undefined behavior caused by shifting into the sign bit
      bpftool: Fix undefined behavior in qsort(NULL, 0, ...)

Kui-Feng Lee (6):
      selftests/bpf: Add traffic monitor functions.
      selftests/bpf: Add the traffic monitor option to test_progs.
      selftests/bpf: netns_new() and netns_free() helpers.
      selftests/bpf: Monitor traffic for tc_redirect.
      selftests/bpf: Monitor traffic for sockmap_listen.
      selftests/bpf: Monitor traffic for select_reuseport.

Leon Hwang (4):
      bpf, x64: Fix tailcall hierarchy
      bpf, arm64: Fix tailcall hierarchy
      selftests/bpf: Add testcases for tailcall hierarchy fixing
      selftests/bpf: Add testcase for updating attached freplace prog to prog_array map

Lin Yikai (3):
      selftests/bpf: fix some typos in selftests
      bpftool: fix some typos in bpftool
      libbpf: fix some typos in libbpf

Markus Elfring (2):
      bpf: Replace 8 seq_puts() calls by seq_putc() calls
      bpf: Simplify character output in seq_print_delegate_opts()

Martin KaFai Lau (18):
      Merge branch 'use network helpers, part 9'
      bpf: Check unsupported ops from the bpf_struct_ops's cfi_stubs
      selftests/bpf: Fix the missing tramp_1 to tramp_40 ops in cfi_stubs
      selftests/bpf: Ensure the unsupported struct_ops prog cannot be loaded
      Merge branch 'use network helpers, part 10'
      Merge branch 'selftests/bpf: convert test_dev_cgroup to test_progs'
      Merge branch 'selftests/bpf: convert three other cgroup tests to test_progs'
      Merge branch 'monitor network traffic for flaky test cases'
      bpf: Move insn_buf[16] to bpf_verifier_env
      bpf: Adjust BPF_JMP that jumps to the 1st insn of the prologue
      bpf: Add gen_epilogue to bpf_verifier_ops
      bpf: Export bpf_base_func_proto
      selftests/bpf: Test gen_prologue and gen_epilogue
      selftests/bpf: Add tailcall epilogue test
      selftests/bpf: A pro/epilogue test when the main prog jumps back to the 1st insn
      selftests/bpf: Test epilogue patching when the main prog has multiple BPF_EXIT
      bpf: Remove the insn_buf array stack usage from the inline_bpf_loop()
      bpf: Fix indentation issue in epilogue_idx

Masahiro Yamada (3):
      btf: remove redundant CONFIG_BPF test in scripts/link-vmlinux.sh
      btf: move pahole check in scripts/link-vmlinux.sh to lib/Kconfig.debug
      btf: require pahole 1.21+ for DEBUG_INFO_BTF with default DWARF version

Matt Bobrowski (3):
      bpf: introduce new VFS based BPF kfuncs
      selftests/bpf: add negative tests for new VFS based BPF kfuncs
      selftests/bpf: add positive tests for new VFS based BPF kfuncs

Matteo Croce (2):
      bpf: Enable generic kfuncs for BPF_CGROUP_* programs
      bpf: Allow bpf_current_task_under_cgroup() with BPF_CGROUP_*

Maxim Mikityanskiy (1):
      bpf: Fix error message on kfunc arg type mismatch

Menglong Dong (1):
      bpf: kprobe: Remove unused declaring of bpf_kprobe_override

Mykyta Yatsenko (2):
      bpftool: Fix handling enum64 in btf dump sorting
      bpftool: Improve btf c dump sorting stability

Pu Lehui (13):
      libbpf: Access first syscall argument with CO-RE direct read on s390
      libbpf: Access first syscall argument with CO-RE direct read on arm64
      selftests/bpf: Enable test_bpf_syscall_macro: Syscall_arg1 on s390 and arm64
      libbpf: Fix accessing first syscall argument on RV64
      selftests/bpf: Adapt OUTPUT appending logic to lower versions of Make
      selftests/bpf: Rename fallback in bpf_dctcp to avoid naming conflict
      selftests/bpf: Limit URLS parsing logic to actual scope in vmtest
      selftests/bpf: Support local rootfs image for vmtest
      selftests/bpf: Enable cross platform testing for vmtest
      selftests/bpf: Add config.riscv64
      selftests/bpf: Add DENYLIST.riscv64
      selftests/bpf: Add riscv64 configurations to local vmtest
      selftests/bpf: Add description for running vmtest on RV64

Quentin Monnet (1):
      bpftool: Add missing blank lines in bpftool-net doc example

Rong Tao (2):
      samples/bpf: tracex4: Fix failed to create kretprobe 'kmem_cache_alloc_node+0x0'
      samples/bpf: Remove sample tracex2

Sam James (2):
      libbpf: Workaround -Wmaybe-uninitialized false positive
      libbpf: Workaround (another) -Wmaybe-uninitialized false positive

Shahab Vahedi (1):
      MAINTAINERS: BPF ARC JIT: Update my e-mail address

Shung-Hsi Yu (1):
      bpf: use type_may_be_null() helper for nullable-param check

Shuyi Cheng (1):
      libbpf: Fixed getting wrong return address on arm64 architecture

Song Liu (5):
      selftests/bpf: Add a test for mmap-able map in map
      bpf: Move bpf_get_file_xattr to fs/bpf_fs_kfuncs.c
      bpf: Add kfunc bpf_get_dentry_xattr() to read xattr from dentry
      selftests/bpf: Add tests for bpf_get_dentry_xattr
      bpf: lsm: Set bpf_lsm_blob_sizes.lbs_task to 0

Stanislav Fomichev (1):
      xsk: Try to make xdp_umem_reg extension a bit more future-proof

Tao Chen (6):
      bpftool: Refactor xdp attach/detach type judgment
      bpftool: Add net attach/detach command to tcx prog
      bpftool: Add bash-completion for tcx subcommand
      bpftool: Add document for net attach/detach on tcx subcommand
      bpf: Check percpu map value size first
      bpf/selftests: Check errno when percpu map value size exceeds

Tony Ambardar (30):
      selftests/bpf: Add missing system defines for mips
      selftests/bpf: Fix error linking uprobe_multi on mips
      selftests/bpf: Fix wrong binary in Makefile log output
      tools/runqslower: Fix LDFLAGS and add LDLIBS support
      selftests/bpf: Use pid_t consistently in test_progs.c
      selftests/bpf: Fix compile error from rlim_t in sk_storage_map.c
      selftests/bpf: Fix error compiling bpf_iter_setsockopt.c with musl libc
      selftests/bpf: Drop unneeded error.h includes
      selftests/bpf: Fix missing ARRAY_SIZE() definition in bench.c
      selftests/bpf: Fix missing UINT_MAX definitions in benchmarks
      selftests/bpf: Fix missing BUILD_BUG_ON() declaration
      selftests/bpf: Fix include of <sys/fcntl.h>
      selftests/bpf: Fix compiling parse_tcp_hdr_opt.c with musl-libc
      selftests/bpf: Fix compiling kfree_skb.c with musl-libc
      selftests/bpf: Fix compiling flow_dissector.c with musl-libc
      selftests/bpf: Fix compiling tcp_rtt.c with musl-libc
      selftests/bpf: Fix compiling core_reloc.c with musl-libc
      selftests/bpf: Fix errors compiling lwt_redirect.c with musl libc
      selftests/bpf: Fix errors compiling decap_sanity.c with musl libc
      selftests/bpf: Fix errors compiling crypto_sanity.c with musl libc
      selftests/bpf: Fix errors compiling cg_storage_multi.h with musl libc
      selftests/bpf: Use portable POSIX basename()
      selftests/bpf: Fix arg parsing in veristat, test_progs
      selftests/bpf: Fix error compiling test_lru_map.c
      selftests/bpf: Fix C++ compile error from missing _Bool type
      selftests/bpf: Fix redefinition errors compiling lwt_reroute.c
      selftests/bpf: Fix compile if backtrace support missing in libc
      selftests/bpf: Fix using stdout, stderr as struct field names
      selftests/bpf: Fix error compiling tc_redirect.c with musl libc
      libbpf: Ensure new BTF objects inherit input endianness

Uros Bizjak (1):
      bpf: Fix percpu address space issues

Will Hawkins (1):
      docs/bpf: Add constant values for linkages

Xu Kuohai (11):
      bpf, lsm: Add disabled BPF LSM hook list
      bpf, lsm: Add check for BPF LSM return value
      bpf: Prevent tail call between progs attached to different hooks
      bpf: Fix compare error in function retval_range_within
      selftests/bpf: Avoid load failure for token_lsm.c
      selftests/bpf: Add return value checks for failed tests
      selftests/bpf: Add test for lsm tail call
      selftests/bpf: Add verifier tests for bpf lsm
      bpf, arm64: Get rid of fpb
      bpf, arm64: Avoid blindly saving/restoring all callee-saved registers
      bpf, arm64: Jit BPF_CALL to direct call when possible

Yiming Xiang (1):
      docs/bpf: Fix a typo in verifier.rst

Yonghong Song (11):
      bpf: Fail verification for sign-extension of packet data/data_end/data_meta
      selftests/bpf: Add tests for ldsx of pkt data/data_end/data_meta accesses
      bpf: Get better reg range with ldsx and 32bit compare
      selftests/bpf: Add reg_bounds tests for ldsx and subreg compare
      selftests/bpf: Fix a btf_dump selftest failure
      bpf, x64: Fix a jit convergence issue
      selftests/bpf: Add a selftest for x86 jit convergence issues
      selftests/bpf: Fix arena_atomics failure due to llvm change
      bpf: Use fake pt_regs when doing bpf syscall tracepoint tracing
      bpf: Fix a sdiv overflow issue
      selftests/bpf: Add tests for sdiv/smod overflow cases

Yu Jiaoliang (1):
      bpf: Use kmemdup_array instead of kmemdup for multiple allocation

Yuan Chen (1):
      selftests/bpf: Fix procmap_query()'s params mismatch and compilation warning

Yusheng Zheng (1):
      libbpf: Fix some typos in comments

Zhu Jun (1):
      tools/bpf: Fix the wrong format specifier

 Documentation/bpf/btf.rst                          |   39 +-
 Documentation/bpf/libbpf/program_types.rst         |   30 +-
 Documentation/bpf/verifier.rst                     |    2 +-
 MAINTAINERS                                        |    4 +-
 arch/arm64/net/bpf_jit_comp.c                      |  508 ++++----
 arch/x86/net/bpf_jit_comp.c                        |  161 ++-
 fs/Makefile                                        |    1 +
 fs/bpf_fs_kfuncs.c                                 |  185 +++
 include/linux/bpf.h                                |   28 +-
 include/linux/bpf_lsm.h                            |    8 +
 include/linux/bpf_verifier.h                       |   27 +
 include/linux/btf.h                                |    5 +
 include/linux/buildid.h                            |    4 +-
 include/linux/filter.h                             |   10 +
 include/uapi/linux/bpf.h                           |   18 +-
 kernel/bpf/Makefile                                |    6 -
 kernel/bpf/arraymap.c                              |   17 +-
 kernel/bpf/bpf_lsm.c                               |   65 +-
 kernel/bpf/bpf_struct_ops.c                        |    9 +-
 kernel/bpf/btf.c                                   |  159 ++-
 kernel/bpf/btf_iter.c                              |    2 +
 kernel/bpf/btf_relocate.c                          |    2 +
 kernel/bpf/cgroup.c                                |    2 +
 kernel/bpf/core.c                                  |   21 +-
 kernel/bpf/hashtab.c                               |   16 +-
 kernel/bpf/helpers.c                               |   94 +-
 kernel/bpf/inode.c                                 |    4 +-
 kernel/bpf/local_storage.c                         |    4 +-
 kernel/bpf/memalloc.c                              |   12 +-
 kernel/bpf/relo_core.c                             |    2 +
 kernel/bpf/reuseport_array.c                       |    2 +-
 kernel/bpf/stackmap.c                              |  131 +-
 kernel/bpf/syscall.c                               |   31 +-
 kernel/bpf/verifier.c                              | 1291 +++++++++++++++-----
 kernel/events/core.c                               |    2 +-
 kernel/trace/bpf_trace.c                           |  108 +-
 kernel/trace/trace_syscalls.c                      |   12 +-
 lib/Kconfig.debug                                  |    8 +-
 lib/buildid.c                                      |  397 ++++--
 net/bpf/bpf_dummy_struct_ops.c                     |    2 +-
 net/core/filter.c                                  |   75 +-
 net/ipv4/bpf_tcp_ca.c                              |   26 -
 net/xdp/xsk.c                                      |   23 +-
 samples/bpf/Makefile                               |    9 +-
 samples/bpf/tracex2.bpf.c                          |   99 --
 samples/bpf/tracex2_user.c                         |  187 ---
 samples/bpf/tracex4.bpf.c                          |    4 +-
 scripts/link-vmlinux.sh                            |   14 +-
 security/bpf/hooks.c                               |    1 -
 tools/bpf/bpftool/Documentation/bpftool-gen.rst    |    4 +-
 tools/bpf/bpftool/Documentation/bpftool-net.rst    |   24 +-
 tools/bpf/bpftool/bash-completion/bpftool          |    2 +-
 tools/bpf/bpftool/btf.c                            |   87 +-
 tools/bpf/bpftool/feature.c                        |   10 +-
 tools/bpf/bpftool/net.c                            |   80 +-
 tools/bpf/bpftool/xlated_dumper.c                  |    4 +-
 tools/bpf/runqslower/Makefile                      |    3 +-
 tools/include/uapi/linux/bpf.h                     |    9 +
 tools/lib/bpf/bpf.h                                |    4 +-
 tools/lib/bpf/bpf_helpers.h                        |    2 +-
 tools/lib/bpf/bpf_tracing.h                        |   25 +-
 tools/lib/bpf/btf.c                                |    8 +-
 tools/lib/bpf/btf.h                                |    2 +-
 tools/lib/bpf/btf_dump.c                           |    2 +-
 tools/lib/bpf/btf_relocate.c                       |    2 +-
 tools/lib/bpf/elf.c                                |    3 +
 tools/lib/bpf/libbpf.c                             |   88 +-
 tools/lib/bpf/libbpf.h                             |   18 +-
 tools/lib/bpf/libbpf.map                           |    1 +
 tools/lib/bpf/libbpf_legacy.h                      |    4 +-
 tools/lib/bpf/linker.c                             |    4 +-
 tools/lib/bpf/skel_internal.h                      |    2 +-
 tools/lib/bpf/usdt.bpf.h                           |    2 +-
 tools/testing/selftests/bpf/.gitignore             |    6 +-
 tools/testing/selftests/bpf/DENYLIST.riscv64       |    3 +
 tools/testing/selftests/bpf/Makefile               |  151 ++-
 tools/testing/selftests/bpf/README.rst             |   32 +-
 tools/testing/selftests/bpf/bench.c                |   13 +
 tools/testing/selftests/bpf/bench.h                |    1 +
 tools/testing/selftests/bpf/benchs/bench_trigger.c |   83 +-
 tools/testing/selftests/bpf/bpf_experimental.h     |   26 +
 tools/testing/selftests/bpf/bpf_kfuncs.h           |   11 +-
 .../selftests/bpf/bpf_testmod/bpf_testmod.c        |  257 +++-
 .../selftests/bpf/bpf_testmod/bpf_testmod.h        |   12 +
 .../selftests/bpf/bpf_testmod/bpf_testmod_kfunc.h  |   15 +
 tools/testing/selftests/bpf/cgroup_helpers.c       |    2 +-
 tools/testing/selftests/bpf/config.riscv64         |   84 ++
 tools/testing/selftests/bpf/disasm_helpers.c       |   69 ++
 tools/testing/selftests/bpf/disasm_helpers.h       |   12 +
 tools/testing/selftests/bpf/get_cgroup_id_user.c   |  151 ---
 tools/testing/selftests/bpf/jit_disasm_helpers.c   |  245 ++++
 tools/testing/selftests/bpf/jit_disasm_helpers.h   |   10 +
 .../selftests/bpf/map_tests/htab_map_batch_ops.c   |    2 +-
 .../bpf/map_tests/lpm_trie_map_batch_ops.c         |    2 +-
 .../selftests/bpf/map_tests/map_percpu_stats.c     |   18 +
 .../selftests/bpf/map_tests/sk_storage_map.c       |    2 +-
 tools/testing/selftests/bpf/network_helpers.c      |  602 ++++++++-
 tools/testing/selftests/bpf/network_helpers.h      |   25 +-
 .../selftests/bpf/prog_tests/attach_probe.c        |    8 +-
 tools/testing/selftests/bpf/prog_tests/bpf_iter.c  |    4 +-
 .../selftests/bpf/prog_tests/bpf_iter_setsockopt.c |    2 +-
 .../testing/selftests/bpf/prog_tests/bpf_tcp_ca.c  |    4 +-
 tools/testing/selftests/bpf/prog_tests/btf.c       |    6 +-
 .../testing/selftests/bpf/prog_tests/btf_distill.c |   68 ++
 tools/testing/selftests/bpf/prog_tests/btf_dump.c  |    4 +-
 tools/testing/selftests/bpf/prog_tests/build_id.c  |  118 ++
 .../selftests/bpf/prog_tests/cg_storage_multi.c    |    2 +-
 .../selftests/bpf/prog_tests/cgroup_ancestor.c     |  141 +++
 .../testing/selftests/bpf/prog_tests/cgroup_dev.c  |  125 ++
 .../bpf/prog_tests/cgroup_get_current_cgroup_id.c  |   46 +
 .../selftests/bpf/prog_tests/cgroup_storage.c      |   96 ++
 .../testing/selftests/bpf/prog_tests/cgroup_v1v2.c |   16 +-
 .../testing/selftests/bpf/prog_tests/core_reloc.c  |    1 +
 .../selftests/bpf/prog_tests/core_reloc_raw.c      |  125 ++
 .../selftests/bpf/prog_tests/crypto_sanity.c       |    1 -
 .../testing/selftests/bpf/prog_tests/ctx_rewrite.c |   74 +-
 .../selftests/bpf/prog_tests/decap_sanity.c        |    1 -
 .../selftests/bpf/prog_tests/fexit_stress.c        |    3 +-
 .../selftests/bpf/prog_tests/flow_dissector.c      |    2 +-
 tools/testing/selftests/bpf/prog_tests/fs_kfuncs.c |    9 +-
 tools/testing/selftests/bpf/prog_tests/iters.c     |    5 +-
 tools/testing/selftests/bpf/prog_tests/kfree_skb.c |    1 +
 .../testing/selftests/bpf/prog_tests/kfunc_call.c  |    1 +
 tools/testing/selftests/bpf/prog_tests/log_buf.c   |    9 +-
 .../selftests/bpf/prog_tests/lwt_redirect.c        |    1 -
 .../testing/selftests/bpf/prog_tests/lwt_reroute.c |    1 +
 .../bpf/prog_tests/module_fentry_shadow.c          |    3 +-
 .../selftests/bpf/prog_tests/nested_trust.c        |    4 +
 .../selftests/bpf/prog_tests/ns_current_pid_tgid.c |    2 +-
 .../selftests/bpf/prog_tests/parse_tcp_hdr_opt.c   |    1 +
 .../selftests/bpf/prog_tests/pro_epilogue.c        |   60 +
 .../raw_tp_writable_reject_nbd_invalid.c           |    3 +-
 .../bpf/prog_tests/raw_tp_writable_test_run.c      |    5 +-
 .../selftests/bpf/prog_tests/read_vsyscall.c       |    1 +
 .../testing/selftests/bpf/prog_tests/reg_bounds.c  |   32 +-
 .../selftests/bpf/prog_tests/resolve_btfids.c      |    2 +-
 .../selftests/bpf/prog_tests/select_reuseport.c    |   37 +-
 tools/testing/selftests/bpf/prog_tests/sk_lookup.c |  111 +-
 tools/testing/selftests/bpf/prog_tests/sock_addr.c |    1 +
 .../selftests/bpf/prog_tests/sockmap_listen.c      |    8 +
 tools/testing/selftests/bpf/prog_tests/tailcalls.c |  385 +++++-
 tools/testing/selftests/bpf/prog_tests/tc_opts.c   |    2 +-
 .../testing/selftests/bpf/prog_tests/tc_redirect.c |   43 +-
 tools/testing/selftests/bpf/prog_tests/tcp_rtt.c   |    1 +
 .../bpf/prog_tests/test_bpf_syscall_macro.c        |    4 -
 .../selftests/bpf/prog_tests/test_bprm_opts.c      |    2 +-
 tools/testing/selftests/bpf/prog_tests/test_lsm.c  |   46 +-
 .../bpf/prog_tests/test_mmap_inner_array.c         |   57 +
 .../selftests/bpf/prog_tests/test_strncmp.c        |    2 +-
 .../bpf/prog_tests/test_struct_ops_module.c        |    2 +
 .../selftests/bpf/prog_tests/test_xdp_veth.c       |  213 ++++
 tools/testing/selftests/bpf/prog_tests/token.c     |    4 +-
 .../selftests/bpf/prog_tests/unpriv_bpf_disabled.c |    3 +-
 .../selftests/bpf/prog_tests/uprobe_multi_test.c   |  529 +++++++-
 .../selftests/bpf/prog_tests/user_ringbuf.c        |    3 +-
 tools/testing/selftests/bpf/prog_tests/verifier.c  |   14 +
 tools/testing/selftests/bpf/progs/arena_atomics.c  |   32 +-
 tools/testing/selftests/bpf/progs/bpf_cubic.c      |    6 +-
 tools/testing/selftests/bpf/progs/bpf_dctcp.c      |    8 +-
 tools/testing/selftests/bpf/progs/bpf_misc.h       |   64 +-
 .../selftests/bpf/progs/bpf_syscall_macro.c        |    2 -
 .../testing/selftests/bpf/progs/cg_storage_multi.h |    2 -
 .../testing/selftests/bpf/progs/cgroup_ancestor.c  |   40 +
 tools/testing/selftests/bpf/progs/cgroup_storage.c |   24 +
 tools/testing/selftests/bpf/progs/dev_cgroup.c     |    4 +-
 tools/testing/selftests/bpf/progs/dynptr_fail.c    |    6 +-
 tools/testing/selftests/bpf/progs/epilogue_exit.c  |   82 ++
 .../selftests/bpf/progs/epilogue_tailcall.c        |   58 +
 tools/testing/selftests/bpf/progs/err.h            |   10 +
 .../selftests/bpf/progs/get_cgroup_id_kern.c       |   26 +-
 tools/testing/selftests/bpf/progs/iters_testmod.c  |  125 ++
 .../selftests/bpf/progs/iters_testmod_seq.c        |   50 +
 .../testing/selftests/bpf/progs/kfunc_call_fail.c  |    7 +
 .../testing/selftests/bpf/progs/local_kptr_stash.c |   30 +-
 tools/testing/selftests/bpf/progs/lsm_tailcall.c   |   34 +
 .../testing/selftests/bpf/progs/mmap_inner_array.c |   57 +
 tools/testing/selftests/bpf/progs/nested_acquire.c |   33 +
 tools/testing/selftests/bpf/progs/pro_epilogue.c   |  154 +++
 .../selftests/bpf/progs/pro_epilogue_goto_start.c  |  149 +++
 tools/testing/selftests/bpf/progs/rbtree_fail.c    |    2 +-
 tools/testing/selftests/bpf/progs/read_vsyscall.c  |    9 +-
 .../selftests/bpf/progs/refcounted_kptr_fail.c     |    4 +-
 tools/testing/selftests/bpf/progs/strobemeta.h     |    4 +-
 tools/testing/selftests/bpf/progs/syscall.c        |    3 +-
 .../bpf/progs/tailcall_bpf2bpf_hierarchy1.c        |   34 +
 .../bpf/progs/tailcall_bpf2bpf_hierarchy2.c        |   70 ++
 .../bpf/progs/tailcall_bpf2bpf_hierarchy3.c        |   62 +
 .../bpf/progs/tailcall_bpf2bpf_hierarchy_fentry.c  |   35 +
 .../selftests/bpf/progs/tailcall_freplace.c        |   23 +
 .../selftests/bpf/progs/task_kfunc_success.c       |   56 +-
 tools/testing/selftests/bpf/progs/tc_bpf2bpf.c     |   22 +
 tools/testing/selftests/bpf/progs/tc_dummy.c       |   12 +
 .../selftests/bpf/progs/test_attach_probe.c        |   64 +-
 tools/testing/selftests/bpf/progs/test_build_id.c  |   31 +
 .../selftests/bpf/progs/test_cls_redirect_dynptr.c |    2 +-
 .../selftests/bpf/progs/test_core_read_macros.c    |    2 +-
 tools/testing/selftests/bpf/progs/test_get_xattr.c |   37 +-
 .../selftests/bpf/progs/test_global_func15.c       |    2 +-
 .../selftests/bpf/progs/test_global_map_resize.c   |   18 +-
 .../bpf/progs/test_libbpf_get_fd_by_id_opts.c      |    1 +
 .../testing/selftests/bpf/progs/test_rdonly_maps.c |    3 +-
 .../selftests/bpf/progs/test_sig_in_xattr.c        |    4 +
 .../selftests/bpf/progs/test_skb_cgroup_id_kern.c  |   45 -
 .../testing/selftests/bpf/progs/test_tunnel_kern.c |   27 +-
 .../selftests/bpf/progs/test_verify_pkcs7_sig.c    |    8 +-
 tools/testing/selftests/bpf/progs/token_lsm.c      |    4 +-
 tools/testing/selftests/bpf/progs/trigger_bench.c  |    7 +
 .../testing/selftests/bpf/progs/unsupported_ops.c  |   22 +
 .../selftests/bpf/progs/uprobe_multi_consumers.c   |   39 +
 .../selftests/bpf/progs/uprobe_multi_pid_filter.c  |   40 +
 .../selftests/bpf/progs/verifier_bits_iter.c       |    2 +-
 .../selftests/bpf/progs/verifier_bpf_fastcall.c    |  900 ++++++++++++++
 tools/testing/selftests/bpf/progs/verifier_const.c |   69 ++
 .../selftests/bpf/progs/verifier_global_subprogs.c |    7 +-
 .../testing/selftests/bpf/progs/verifier_int_ptr.c |   15 +-
 .../selftests/bpf/progs/verifier_jit_convergence.c |  114 ++
 .../bpf/progs/verifier_kfunc_prog_types.c          |   48 +
 tools/testing/selftests/bpf/progs/verifier_ldsx.c  |  112 ++
 tools/testing/selftests/bpf/progs/verifier_lsm.c   |  162 +++
 .../selftests/bpf/progs/verifier_scalar_ids.c      |  256 ++--
 tools/testing/selftests/bpf/progs/verifier_sdiv.c  |  439 +++++++
 .../selftests/bpf/progs/verifier_spill_fill.c      |   24 +-
 .../bpf/progs/verifier_subprog_precision.c         |    2 +-
 .../selftests/bpf/progs/verifier_tailcall_jit.c    |  105 ++
 .../selftests/bpf/progs/verifier_vfs_accept.c      |   85 ++
 .../selftests/bpf/progs/verifier_vfs_reject.c      |  161 +++
 .../testing/selftests/bpf/progs/xdp_redirect_map.c |    6 +-
 tools/testing/selftests/bpf/test_cgroup_storage.c  |  174 ---
 tools/testing/selftests/bpf/test_cpp.cpp           |    4 +
 tools/testing/selftests/bpf/test_dev_cgroup.c      |   85 --
 tools/testing/selftests/bpf/test_loader.c          |  496 ++++++--
 tools/testing/selftests/bpf/test_lru_map.c         |    3 +-
 tools/testing/selftests/bpf/test_maps.c            |    2 +-
 tools/testing/selftests/bpf/test_progs.c           |  263 +++-
 tools/testing/selftests/bpf/test_progs.h           |   17 +-
 tools/testing/selftests/bpf/test_skb_cgroup_id.sh  |   63 -
 .../selftests/bpf/test_skb_cgroup_id_user.c        |  183 ---
 tools/testing/selftests/bpf/test_xdp_veth.sh       |  121 --
 tools/testing/selftests/bpf/testing_helpers.c      |    7 +-
 tools/testing/selftests/bpf/trace_helpers.c        |  104 +-
 tools/testing/selftests/bpf/unpriv_helpers.c       |    1 -
 tools/testing/selftests/bpf/uprobe_multi.c         |   41 +
 tools/testing/selftests/bpf/uprobe_multi.ld        |   11 +
 tools/testing/selftests/bpf/verifier/calls.c       |    2 +-
 tools/testing/selftests/bpf/verifier/map_kptr.c    |    2 +-
 tools/testing/selftests/bpf/verifier/precise.c     |   28 +-
 tools/testing/selftests/bpf/veristat.c             |   16 +-
 tools/testing/selftests/bpf/vmtest.sh              |  107 +-
 tools/testing/selftests/bpf/xskxceiver.c           |    1 +
 249 files changed, 11430 insertions(+), 3048 deletions(-)
 create mode 100644 fs/bpf_fs_kfuncs.c
 create mode 100644 kernel/bpf/btf_iter.c
 create mode 100644 kernel/bpf/btf_relocate.c
 create mode 100644 kernel/bpf/relo_core.c
 delete mode 100644 samples/bpf/tracex2.bpf.c
 delete mode 100644 samples/bpf/tracex2_user.c
 create mode 100644 tools/testing/selftests/bpf/DENYLIST.riscv64
 create mode 100644 tools/testing/selftests/bpf/config.riscv64
 create mode 100644 tools/testing/selftests/bpf/disasm_helpers.c
 create mode 100644 tools/testing/selftests/bpf/disasm_helpers.h
 delete mode 100644 tools/testing/selftests/bpf/get_cgroup_id_user.c
 create mode 100644 tools/testing/selftests/bpf/jit_disasm_helpers.c
 create mode 100644 tools/testing/selftests/bpf/jit_disasm_helpers.h
 create mode 100644 tools/testing/selftests/bpf/prog_tests/build_id.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/cgroup_ancestor.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/cgroup_dev.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/cgroup_get_current_cgroup_id.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/cgroup_storage.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/core_reloc_raw.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/pro_epilogue.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/test_mmap_inner_array.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/test_xdp_veth.c
 create mode 100644 tools/testing/selftests/bpf/progs/cgroup_ancestor.c
 create mode 100644 tools/testing/selftests/bpf/progs/cgroup_storage.c
 create mode 100644 tools/testing/selftests/bpf/progs/epilogue_exit.c
 create mode 100644 tools/testing/selftests/bpf/progs/epilogue_tailcall.c
 create mode 100644 tools/testing/selftests/bpf/progs/iters_testmod.c
 create mode 100644 tools/testing/selftests/bpf/progs/lsm_tailcall.c
 create mode 100644 tools/testing/selftests/bpf/progs/mmap_inner_array.c
 create mode 100644 tools/testing/selftests/bpf/progs/nested_acquire.c
 create mode 100644 tools/testing/selftests/bpf/progs/pro_epilogue.c
 create mode 100644 tools/testing/selftests/bpf/progs/pro_epilogue_goto_start.c
 create mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy1.c
 create mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy2.c
 create mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy3.c
 create mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy_fentry.c
 create mode 100644 tools/testing/selftests/bpf/progs/tailcall_freplace.c
 create mode 100644 tools/testing/selftests/bpf/progs/tc_bpf2bpf.c
 create mode 100644 tools/testing/selftests/bpf/progs/tc_dummy.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_build_id.c
 delete mode 100644 tools/testing/selftests/bpf/progs/test_skb_cgroup_id_kern.c
 create mode 100644 tools/testing/selftests/bpf/progs/unsupported_ops.c
 create mode 100644 tools/testing/selftests/bpf/progs/uprobe_multi_consumers.c
 create mode 100644 tools/testing/selftests/bpf/progs/uprobe_multi_pid_filter.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_bpf_fastcall.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_const.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_jit_convergence.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_lsm.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_tailcall_jit.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_vfs_accept.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_vfs_reject.c
 delete mode 100644 tools/testing/selftests/bpf/test_cgroup_storage.c
 delete mode 100644 tools/testing/selftests/bpf/test_dev_cgroup.c
 delete mode 100755 tools/testing/selftests/bpf/test_skb_cgroup_id.sh
 delete mode 100644 tools/testing/selftests/bpf/test_skb_cgroup_id_user.c
 delete mode 100755 tools/testing/selftests/bpf/test_xdp_veth.sh
 create mode 100644 tools/testing/selftests/bpf/uprobe_multi.ld




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux