lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230413191525.7295-1-daniel@iogearbox.net>
Date:   Thu, 13 Apr 2023 21:15:25 +0200
From:   Daniel Borkmann <daniel@...earbox.net>
To:     davem@...emloft.net
Cc:     kuba@...nel.org, pabeni@...hat.com, edumazet@...gle.com,
        daniel@...earbox.net, ast@...nel.org, andrii@...nel.org,
        martin.lau@...ux.dev, netdev@...r.kernel.org, bpf@...r.kernel.org
Subject: pull-request: bpf-next 2023-04-13

Hi David, hi Jakub, hi Paolo, hi Eric,

The following pull-request contains BPF updates for your *net-next* tree.

We've added 260 non-merge commits during the last 36 day(s) which contain
a total of 356 files changed, 21786 insertions(+), 11275 deletions(-).

There is a simple merge conflict in include/net/ip_tunnels.h between net-next
commit bc9d003dc48c ("ip_tunnel: Preserve pointer const in ip_tunnel_info_opts")
and bpf-next commit ac931d4cdec3 ("ipip,ip_tunnel,sit: Add FOU support for
externally controlled ipip devices"), resolution is to take both hunks:

  [...]
  /* Maximum tunnel options length. */
  #define IP_TUNNEL_OPTS_MAX                                      \
          GENMASK((sizeof_field(struct ip_tunnel_info,            \
                                options_len) * BITS_PER_BYTE) - 1, 0)
  
  #define ip_tunnel_info_opts(info)                               \
          _Generic(info,                                          \
                   const struct ip_tunnel_info * : ((const void *)((info) + 1)),\
                   struct ip_tunnel_info * : ((void *)((info) + 1))\
          )
  
  struct ip_tunnel_info {
  [...]

Another small one in Documentation/bpf/bpf_devel_QA.rst between net-next commit
b7abcd9c656b ("bpf, doc: Link to submitting-patches.rst for general patch
submission info") and bpf-next commit 0f10f647f455 ("bpf, docs: Use internal
linking for link to netdev subsystem doc"), resolve by removing both hunks:

  [...]
  .. Links
  .. _selftests:
     https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/testing/selftests/bpf/
  [...]

And the last one concerns a small conflict in net/bpf/test_run.c between net-next
commit 294635a8165a ("bpf, test_run: fix &xdp_frame misplacement for LIVE_FRAMES")
and bpf-next commit e5995bc7e2ba ("bpf, test_run: fix crashes due to XDP frame
overwriting/corruption"). The correct solution is to change `frm.` into `frame->`,
resulting in:

  [...]
  static bool frame_was_changed(const struct xdp_page_head *head)
  {
          /* xdp_scrub_frame() zeroes the data pointer, flags is the last field,
           * i.e. has the highest chances to be overwritten. If those two are
           * untouched, it's most likely safe to skip the context reset.
           */
          return head->frame->data != head->orig_ctx.data ||
                 head->frame->flags != head->orig_ctx.flags;
  }
  [...]

The main changes are:

1) Rework BPF verifier log behavior and implement it as a rotating log by default
   with the option to retain old-style fixed log behavior, from Andrii Nakryiko.

2) Adds support for using {FOU,GUE} encap with an ipip device operating in collect_md
   mode and add a set of BPF kfuncs for controlling encap params, from Christian Ehrig.

3) Allow BPF programs to detect at load time whether a particular kfunc exists or
   not, and also add support for this in light skeleton, from Alexei Starovoitov.

4) Optimize hashmap lookups when key size is multiple of 4, from Anton Protopopov.

5) Enable RCU semantics for task BPF kptrs and allow referenced kptr tasks to be
   stored in BPF maps, from David Vernet.

6) Add support for stashing local BPF kptr into a map value via bpf_kptr_xchg().
   This is useful e.g. for rbtree node creation for new cgroups, from Dave Marchevsky.

7) Fix BTF handling of is_int_ptr to skip modifiers to work around tracing issues
   where a program cannot be attached, from Feng Zhou.

8) Migrate a big portion of test_verifier unit tests over to test_progs -a verifier_*
   via inline asm to ease {read,debug}ability, from Eduard Zingerman.

9) Several updates to the instruction-set.rst documentation which is subject to
   future IETF standardization (https://lwn.net/Articles/926882/), from Dave Thaler.

10) Fix BPF verifier in the __reg_bound_offset's 64->32 tnum sub-register known bits
    information propagation, from Daniel Borkmann.

11) Add skb bitfield compaction work related to BPF with the overall goal to
    make more of the sk_buff bits optional, from Jakub Kicinski.

12) BPF selftest cleanups for build id extraction which stand on its own from the
    upcoming integration work of build id into struct file object, from Jiri Olsa.

13) Add fixes and optimizations for xsk descriptor validation and several selftest
    improvements for xsk sockets, from Kal Conley.

14) Add BPF links for struct_ops and enable switching implementations of BPF TCP
    cong-ctls under a given name by replacing backing struct_ops map, from Kui-Feng Lee.

15) Remove a misleading BPF verifier env->bypass_spec_v1 check on variable offset
    stack read as earlier Spectre checks cover this, from Luis Gerhorst.

16) Fix issues in copy_from_user_nofault() for BPF and other tracers to resemble
    copy_from_user_nmi() from safety PoV, from Florian Lehner and Alexei Starovoitov.

17) Add --json-summary option to test_progs in order for CI tooling to ease parsing
    of test results, from Manu Bretelle.

18) Batch of improvements and refactoring to prep for upcoming bpf_local_storage
    conversion to bpf_mem_cache_{alloc,free} allocator, from Martin KaFai Lau.

19) Improve bpftool's visual program dump which produces the control flow graph in
    a DOT format by adding C source inline annotations, from Quentin Monnet.

20) Fix attaching fentry/fexit/fmod_ret/lsm to modules by extracting the module name from
    BTF of the target and searching kallsyms of the correct module, from Viktor Malik.

21) Improve BPF verifier handling of '<const> <cond> <non_const>' to better detect
    whether in particular jmp32 branches are taken, from Yonghong Song.

22) Allow BPF TCP cong-ctls to write app_limited of struct tcp_sock. A built-in cc or
    one from a kernel module is already able to write to app_limited, from Yixin Shen.

Please consider pulling these changes from:

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

Thanks a lot!

Also thanks to reporters, reviewers and testers of commits in this pull-request:

Alexei Starovoitov, Andrii Nakryiko, Artem Savkov, Dan Carpenter, Daniel 
Borkmann, Dave Marchevsky, David Vernet, Eduard Zingerman, Florian 
Lehner, Hsin-Wei Hung, Ilya Leoshkevich, James Hilliard, Jiri Olsa, John 
Fastabend, kernel test robot, Kui-Feng Lee, Kumar Kartikeya Dwivedi, 
Linux Kernel Functional Testing, Lorenz Bauer, Luis Chamberlain, Maciej 
Fijalkowski, Magnus Karlsson, Martin KaFai Lau, Michael S. Tsirkin, Oleg 
Nesterov, Quentin Monnet, Stanislav Fomichev, Steven Rostedt (Google), 
Tejun Heo, Toke Høiland-Jørgensen, Xu Kuohai, Yonghong Song, Zhen Lei

----------------------------------------------------------------

The following changes since commit ed69e0667db5fd0f7eb1fdef329e0985939b0148:

  Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next (2023-03-08 14:34:22 -0800)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git tags/for-netdev

for you to fetch changes up to 8c5c2a4898e3d6bad86e29d471e023c8a19ba799:

  bpf, sockmap: Revert buggy deadlock fix in the sockhash and sockmap (2023-04-13 20:36:32 +0200)

----------------------------------------------------------------
bpf-next-for-netdev

----------------------------------------------------------------
Alejandro Colomar (1):
      bpf: Remove extra whitespace in SPDX tag for syscall/helpers man pages

Alexander Lobakin (6):
      selftests/bpf: robustify test_xdp_do_redirect with more payload magics
      net: page_pool, skbuff: make skb_mark_for_recycle() always available
      xdp: recycle Page Pool backed skbs built from XDP frames
      xdp: remove unused {__,}xdp_release_frame()
      bpf, test_run: fix crashes due to XDP frame overwriting/corruption
      selftests/bpf: fix "metadata marker" getting overwritten by the netstack

Alexei Starovoitov (42):
      Merge branch 'BPF open-coded iterators'
      Merge branch 'selftests/bpf: make BPF_CFLAGS stricter with -Wall'
      Merge branch 'Support stashing local kptrs with bpf_kptr_xchg'
      bpf: Fix bpf_strncmp proto.
      bpf: Allow helpers access trusted PTR_TO_BTF_ID.
      selftests/bpf: Add various tests to check helper access into ptr_to_btf_id.
      Merge branch 'xdp: recycle Page Pool backed skbs built from XDP frames'
      selftests/bpf: Fix trace_virtqueue_add_sgs test issue with LLVM 17.
      Merge branch 'Fix attaching fentry/fexit/fmod_ret/lsm to modules'
      Merge branch 'Make struct bpf_cpumask RCU safe'
      Merge branch 'double-fix bpf_test_run + XDP_PASS recycling'
      bpf: Allow ld_imm64 instruction to point to kfunc.
      libbpf: Fix relocation of kfunc ksym in ld_imm64 insn.
      libbpf: Introduce bpf_ksym_exists() macro.
      selftests/bpf: Add test for bpf_ksym_exists().
      libbpf: Fix ld_imm64 copy logic for ksym in light skeleton.
      selftest/bpf: Add a test case for ld_imm64 copy logic.
      libbpf: Rename RELO_EXTERN_VAR/FUNC.
      bpf: Teach the verifier to recognize rdonly_mem as not null.
      libbpf: Support kfunc detection in light skeleton.
      selftests/bpf: Add light skeleton test for kfunc detection.
      Merge branch 'error checking where helpers call bpf_map_ops'
      Merge branch 'Don't invoke KPTR_REF destructor on NULL xchg'
      Merge branch 'First set of verifier/*.c migrated to inline assembly'
      Merge branch 'bpf: Use bpf_mem_cache_alloc/free in bpf_local_storage'
      Merge branch 'veristat: add better support of freplace programs'
      Merge branch 'selftests/bpf: Add read_build_id function'
      Merge branch 'Prepare veristat for packaging'
      Merge branch 'Enable RCU semantics for task kptrs'
      bpf: Invoke btf_struct_access() callback only for writes.
      bpf: Remove unused arguments from btf_struct_access().
      bpf: Refactor btf_nested_type_is_trusted().
      bpf: Teach verifier that certain helpers accept NULL pointer.
      bpf: Refactor NULL-ness check in check_reg_type().
      bpf: Allowlist few fields similar to __rcu tag.
      bpf: Undo strict enforcement for walking untagged fields.
      selftests/bpf: Add tracing tests for walking skb and req.
      Merge branch 'bpftool: Add inline annotations when dumping program CFGs'
      Merge branch 'bpf: Improve verifier for cond_op and spilled loop index variables'
      bpf: Handle NULL in bpf_local_storage_free.
      Merge branch 'Add FOU support for externally controlled ipip devices'
      mm: Fix copy_from_user_nofault().

Andrii Nakryiko (49):
      bpf: factor out fetching basic kfunc metadata
      bpf: add iterator kfuncs registration and validation logic
      bpf: add support for open-coded iterator loops
      bpf: implement numbers iterator
      selftests/bpf: add bpf_for_each(), bpf_for(), and bpf_repeat() macros
      selftests/bpf: add iterators tests
      selftests/bpf: add number iterator tests
      selftests/bpf: implement and test custom testmod_seq iterator
      selftests/bpf: prevent unused variable warning in bpf_for()
      selftests/bpf: add __sink() macro to fake variable consumption
      selftests/bpf: fix lots of silly mistakes pointed out by compiler
      selftests/bpf: make BPF compiler flags stricter
      bpf: ensure state checkpointing at iter_next() call sites
      bpf: take into account liveness when propagating precision
      bpf: fix precision propagation verbose logging
      Merge branch 'bpf: Add detection of kfuncs.'
      Merge branch 'bpf: Support ksym detection in light skeleton.'
      bpf: remember meta->iter info only for initialized iters
      Merge branch 'verifier/xdp_direct_packet_access.c converted to inline assembly'
      libbpf: disassociate section handler on explicit bpf_program__set_type() call
      veristat: add -d debug mode option to see debug libbpf log
      veristat: guess and substitue underlying program type for freplace (EXT) progs
      veristat: change guess for __sk_buff from CGROUP_SKB to SCHED_CLS
      veristat: relicense veristat.c as dual GPL-2.0-only or BSD-2-Clause licensed
      veristat: improve version reporting
      veristat: avoid using kernel-internal headers
      veristat: small fixed found in -O2 mode
      Merge branch 'bpf: Follow up to RCU enforcement in the verifier.'
      bpf: Split off basic BPF verifier log into separate file
      bpf: Remove minimum size restrictions on verifier log buffer
      bpf: Switch BPF verifier log to be a rotating log by default
      libbpf: Don't enforce unnecessary verifier log restrictions on libbpf side
      veristat: Add more veristat control over verifier log options
      selftests/bpf: Add fixed vs rotating verifier log tests
      bpf: Ignore verifier log reset in BPF_LOG_KERNEL mode
      bpf: Fix missing -EFAULT return on user log buf error in btf_parse()
      bpf: Avoid incorrect -EFAULT error in BPF_LOG_KERNEL mode
      bpf: Simplify logging-related error conditions handling
      bpf: Keep track of total log content size in both fixed and rolling modes
      bpf: Add log_true_size output field to return necessary log buffer size
      bpf: Simplify internal verifier log interface
      bpf: Relax log_buf NULL conditions when log_level>0 is requested
      libbpf: Wire through log_true_size returned from kernel for BPF_PROG_LOAD
      libbpf: Wire through log_true_size for bpf_btf_load() API
      selftests/bpf: Add tests to validate log_true_size feature
      selftests/bpf: Add testing of log_buf==NULL condition for BPF_PROG_LOAD
      selftests/bpf: Add verifier log tests for BPF_BTF_LOAD command
      selftests/bpf: Remove stand-along test_verifier_log test binary
      selftests/bpf: Fix compiler warnings in bpf_testmod for kfuncs

Anton Protopopov (2):
      bpf: optimize hashmap lookups when key_size is divisible by 4
      bpf: compute hashes in bloom filter similar to hashmap

Bagas Sanjaya (1):
      bpf, docs: Use internal linking for link to netdev subsystem doc

Barret Rhoden (1):
      bpf: ensure all memory is initialized in bpf_get_current_comm

Christian Ehrig (3):
      ipip,ip_tunnel,sit: Add FOU support for externally controlled ipip devices
      bpf,fou: Add bpf_skb_{set,get}_fou_encap kfuncs
      selftests/bpf: Test FOU kfuncs for externally controlled ipip devices

Daniel Borkmann (3):
      bpf: Fix __reg_bound_offset 64->32 var_off subreg propagation
      Merge branch 'bpf-verifier-log-rotation'
      bpf, sockmap: Revert buggy deadlock fix in the sockhash and sockmap

Daniel Müller (1):
      libbpf: Ignore warnings about "inefficient alignment"

Dave Marchevsky (8):
      bpf: verifier: Rename kernel_type_name helper to btf_type_name
      bpf: btf: Remove unused btf_field_info_type enum
      bpf: Change btf_record_find enum parameter to field_mask
      bpf: Support __kptr to local kptrs
      bpf: Allow local kptrs to be exchanged via bpf_kptr_xchg
      selftests/bpf: Add local kptr stashing test
      bpf: Disable migration when freeing stashed local kptr using obj drop
      bpf: Fix struct_meta lookup for bpf_obj_free_fields kfunc call

Dave Thaler (4):
      bpf, docs: Explain helper functions
      bpf, docs: Add signed comparison example
      bpf, docs: Add extended call instructions
      bpf, docs: Add docs on extended 64-bit immediate instructions

David Vernet (18):
      bpf/selftests: Fix send_signal tracepoint tests
      tasks: Extract rcu_users out of union
      bpf: Free struct bpf_cpumask in call_rcu handler
      bpf: Mark struct bpf_cpumask as rcu protected
      bpf/selftests: Test using global cpumask kptr with RCU
      bpf: Remove bpf_cpumask_kptr_get() kfunc
      bpf,docs: Remove bpf_cpumask_kptr_get() from documentation
      bpf: Only invoke kptr dtor following non-NULL xchg
      bpf: Remove now-unnecessary NULL checks for KF_RELEASE kfuncs
      bpf: Treat KF_RELEASE kfuncs as KF_TRUSTED_ARGS
      bpf: Handle PTR_MAYBE_NULL case in PTR_TO_BTF_ID helper call arg
      selftests/bpf: Add testcases for ptr_*_or_null_ in bpf_kptr_xchg
      bpf: Make struct task_struct an RCU-safe type
      bpf: Remove now-defunct task kfuncs
      bpf,docs: Update documentation to reflect new task kfuncs
      bpf: Make bpf_cgroup_acquire() KF_RCU | KF_RET_NULL
      bpf: Remove bpf_cgroup_kptr_get() kfunc
      bpf,docs: Remove references to bpf_cgroup_kptr_get()

Eduard Zingerman (46):
      selftests/bpf: Report program name on parse_test_spec error
      selftests/bpf: __imm_insn & __imm_const macro for bpf_misc.h
      selftests/bpf: Unprivileged tests for test_loader.c
      selftests/bpf: Tests execution support for test_loader.c
      selftests/bpf: prog_tests entry point for migrated test_verifier tests
      selftests/bpf: verifier/and.c converted to inline assembly
      selftests/bpf: verifier/array_access.c converted to inline assembly
      selftests/bpf: verifier/basic_stack.c converted to inline assembly
      selftests/bpf: verifier/bounds_deduction.c converted to inline assembly
      selftests/bpf: verifier/bounds_mix_sign_unsign.c converted to inline assembly
      selftests/bpf: verifier/cfg.c converted to inline assembly
      selftests/bpf: verifier/cgroup_inv_retcode.c converted to inline assembly
      selftests/bpf: verifier/cgroup_skb.c converted to inline assembly
      selftests/bpf: verifier/cgroup_storage.c converted to inline assembly
      selftests/bpf: verifier/const_or.c converted to inline assembly
      selftests/bpf: verifier/ctx_sk_msg.c converted to inline assembly
      selftests/bpf: verifier/direct_stack_access_wraparound.c converted to inline assembly
      selftests/bpf: verifier/div0.c converted to inline assembly
      selftests/bpf: verifier/div_overflow.c converted to inline assembly
      selftests/bpf: verifier/helper_access_var_len.c converted to inline assembly
      selftests/bpf: verifier/helper_packet_access.c converted to inline assembly
      selftests/bpf: verifier/helper_restricted.c converted to inline assembly
      selftests/bpf: verifier/helper_value_access.c converted to inline assembly
      selftests/bpf: verifier/int_ptr.c converted to inline assembly
      selftests/bpf: verifier/ld_ind.c converted to inline assembly
      selftests/bpf: verifier/leak_ptr.c converted to inline assembly
      selftests/bpf: verifier/map_ptr.c converted to inline assembly
      selftests/bpf: verifier/map_ret_val.c converted to inline assembly
      selftests/bpf: verifier/masking.c converted to inline assembly
      selftests/bpf: verifier/meta_access.c converted to inline assembly
      selftests/bpf: verifier/raw_stack.c converted to inline assembly
      selftests/bpf: verifier/raw_tp_writable.c converted to inline assembly
      selftests/bpf: verifier/ringbuf.c converted to inline assembly
      selftests/bpf: verifier/spill_fill.c converted to inline assembly
      selftests/bpf: verifier/stack_ptr.c converted to inline assembly
      selftests/bpf: verifier/uninit.c converted to inline assembly
      selftests/bpf: verifier/value_adj_spill.c converted to inline assembly
      selftests/bpf: verifier/value.c converted to inline assembly
      selftests/bpf: verifier/value_or_null.c converted to inline assembly
      selftests/bpf: verifier/var_off.c converted to inline assembly
      selftests/bpf: verifier/xadd.c converted to inline assembly
      selftests/bpf: verifier/xdp.c converted to inline assembly
      libbpf: Fix double-free when linker processes empty sections
      selftests/bpf: Verifier/xdp_direct_packet_access.c converted to inline assembly
      selftests/bpf: Remove verifier/xdp_direct_packet_access.c, converted to progs/verifier_xdp_direct_packet_access.c
      selftests/bpf: Prevent infinite loop in veristat when base file is too short

Feng Zhou (2):
      bpf/btf: Fix is_int_ptr()
      selftests/bpf: Add test to access u32 ptr argument in tracing program

Hao Zeng (1):
      samples/bpf: Fix fout leak in hbm's run_bpf_prog

Hengqi Chen (1):
      selftests/bpf: Don't assume page size is 4096

Ilya Leoshkevich (1):
      selftests/bpf: Add RESOLVE_BTFIDS dependency to bpf_testmod.ko

JP Kobryn (3):
      bpf/selftests: coverage for bpf_map_ops errors
      bpf: return long from bpf_map_ops funcs
      libbpf: Ensure print callback usage is thread-safe

Jakub Kicinski (3):
      net: skbuff: rename __pkt_vlan_present_offset to __mono_tc_offset
      net: skbuff: reorder bytes 2 and 3 of the bitfield
      net: skbuff: move the fields BPF cares about directly next to the offset marker

James Hilliard (1):
      selftests/bpf: Fix conflicts with built-in functions in bench_local_storage_create

Jiri Olsa (4):
      selftests/bpf: Add err.h header
      selftests/bpf: Add read_build_id function
      selftests/bpf: Replace extract_build_id with read_build_id
      kallsyms: Disable preemption for find_kallsyms_symbol_value

Kal Conley (9):
      selftests: xsk: Add xskxceiver.h dependency to Makefile
      selftests: xsk: Use correct UMEM size in testapp_invalid_desc
      selftests: xsk: Add test case for packets at end of UMEM
      selftests: xsk: Disable IPv6 on VETH1
      selftests: xsk: Deflakify STATS_RX_DROPPED test
      xsk: Fix unaligned descriptor validation
      selftests: xsk: Add test UNALIGNED_INV_DESC_4K1_FRAME_SIZE
      xsk: Simplify xp_aligned_validate_desc implementation
      xsk: Elide base_addr comparison in xp_unaligned_validate_desc

Kui-Feng Lee (8):
      bpf: Retire the struct_ops map kvalue->refcnt.
      net: Update an existing TCP congestion control algorithm.
      bpf: Create links for BPF struct_ops maps.
      libbpf: Create a bpf_link in bpf_map__attach_struct_ops().
      bpf: Update the struct_ops of a bpf_link.
      libbpf: Update a bpf_link with another struct_ops.
      libbpf: Use .struct_ops.link section to indicate a struct_ops with a link.
      selftests/bpf: Test switching TCP Congestion Control algorithms.

Liu Pan (1):
      libbpf: Explicitly call write to append content to file

Lorenz Bauer (1):
      selftests/bpf: Fix use of uninitialized op_name in log tests

Lorenzo Bianconi (2):
      selftests/bpf: Use ifname instead of ifindex in XDP compliance test tool
      selftests/bpf: Improve error logs in XDP compliance test tool

Luis Gerhorst (1):
      bpf: Remove misleading spec_v1 check on var-offset stack read

Manu Bretelle (3):
      selftests/bpf: Add --json-summary option to test_progs
      tools: bpftool: json: Fix backslash escape typo in jsonw_puts
      selftests/bpf: Reset err when symbol name already exist in kprobe_multi_test

Martin KaFai Lau (29):
      selftests/bpf: Fix flaky fib_lookup test
      bpf: Move a few bpf_local_storage functions to static scope
      bpf: Refactor codes into bpf_local_storage_destroy
      bpf: Remove __bpf_local_storage_map_alloc
      bpf: Remove the preceding __ from __bpf_selem_unlink_storage
      bpf: Remember smap in bpf_local_storage
      bpf: Repurpose use_trace_rcu to reuse_now in bpf_local_storage
      bpf: Remove bpf_selem_free_fields*_rcu
      bpf: Add bpf_selem_free_rcu callback
      bpf: Add bpf_selem_free()
      bpf: Add bpf_local_storage_rcu callback
      bpf: Add bpf_local_storage_free()
      selftests/bpf: Replace CHECK with ASSERT in test_local_storage
      selftests/bpf: Check freeing sk->sk_local_storage with sk_local_storage->smap is NULL
      selftests/bpf: Add local-storage-create benchmark
      Merge branch 'bpf: Allow helpers access ptr_to_btf_id.'
      selftests/bpf: Use ASSERT_EQ instead ASSERT_OK for testing memcmp result
      selftests/bpf: Fix a fd leak in an error path in network_helpers.c
      Merge branch 'net: skbuff: skb bitfield compaction - bpf'
      Merge branch 'Transit between BPF TCP congestion controls.'
      bpf: Check IS_ERR for the bpf_map_get() return value
      bpf: Add a few bpf mem allocator functions
      bpf: Use bpf_mem_cache_alloc/free in bpf_local_storage_elem
      bpf: Use bpf_mem_cache_alloc/free for bpf_local_storage
      selftests/bpf: Test task storage when local_storage->smap is NULL
      selftests/bpf: Add bench for task storage creation
      Merge branch 'Allow BPF TCP CCs to write app_limited'
      Merge branch 'selftests: xsk: Add test case for packets at end of UMEM'
      Merge branch 'xsk: Fix unaligned descriptor validation'

Michael Weiß (1):
      bpf: Fix a typo for BPF_F_ANY_ALIGNMENT in bpf.h

Nuno Gonçalves (1):
      xsk: allow remap of fill and/or completion rings

Quentin Monnet (7):
      bpftool: Fix documentation about line info display for prog dumps
      bpftool: Fix bug for long instructions in program CFG dumps
      bpftool: Support inline annotations when dumping the CFG of a program
      bpftool: Return an error on prog dumps if both CFG and JSON are required
      bpftool: Support "opcodes", "linum", "visual" simultaneously
      bpftool: Support printing opcodes and source file references in CFG
      bpftool: Clean up _bpftool_once_attr() calls in bash completion

Ross Zwisler (2):
      bpf: use canonical ftrace path
      selftests/bpf: use canonical ftrace path

Song Liu (4):
      selftests/bpf: Use PERF_COUNT_HW_CPU_CYCLES event for get_branch_snapshot
      selftests/bpf: Use read_perf_max_sample_freq() in perf_event_stackmap
      selftests/bpf: Fix leaked bpf_link in get_stackid_cannot_attach
      selftests/bpf: Keep the loop in bpf_testmod_loop_test

Sreevani Sreejith (1):
      bpf, docs: Libbpf overview documentation

Tejun Heo (1):
      cgroup: Make current_cgns_cgroup_dfl() safe to call after exit_task_namespace()

Tushar Vyavahare (1):
      selftests/xsk: add xdp populate metadata test

Viktor Malik (4):
      bpf: Fix attaching fentry/fexit/fmod_ret/lsm to modules
      bpf/selftests: Test fentry attachment to shadowed functions
      kallsyms, bpf: Move find_kallsyms_symbol_value out of internal header
      kallsyms: move module-related functions under correct configs

Wei Yongjun (1):
      bpftool: Set program type only if it differs from the desired one

Xin Liu (1):
      bpf, sockmap: fix deadlocks in the sockhash and sockmap

Xu Kuohai (2):
      selftests/bpf: Check when bounds are not in the 32-bit range
      selftests/bpf: Rewrite two infinite loops in bound check cases

YiFei Zhu (1):
      selftests/bpf: Wait for receive in cg_storage_multi test

Yixin Shen (2):
      bpf: allow a TCP CC to write app_limited
      selftests/bpf: test a BPF CC writing app_limited

Yonghong Song (5):
      selftests/bpf: Workaround verification failure for fexit_bpf2bpf/func_replace_return_code
      bpf: Improve verifier JEQ/JNE insn branch taken checking
      selftests/bpf: Add tests for non-constant cond_op NE/EQ bound deduction
      bpf: Improve handling of pattern '<const> <cond_op> <non_const>' in verifier
      selftests/bpf: Add verifier tests for code pattern '<const> <cond_op> <non_const>'

 Documentation/bpf/bpf_devel_QA.rst                 |   20 +-
 Documentation/bpf/clang-notes.rst                  |    6 +
 Documentation/bpf/cpumasks.rst                     |   30 +-
 Documentation/bpf/instruction-set.rst              |  129 +-
 Documentation/bpf/kfuncs.rst                       |  124 +-
 Documentation/bpf/libbpf/index.rst                 |   25 +-
 Documentation/bpf/libbpf/libbpf_overview.rst       |  228 +++
 Documentation/bpf/linux-notes.rst                  |   30 +
 drivers/hid/bpf/hid_bpf_dispatch.c                 |    3 -
 include/linux/bpf.h                                |   54 +-
 include/linux/bpf_local_storage.h                  |   19 +-
 include/linux/bpf_mem_alloc.h                      |    2 +
 include/linux/bpf_verifier.h                       |   72 +-
 include/linux/btf.h                                |    8 +-
 include/linux/filter.h                             |    9 +-
 include/linux/module.h                             |  127 +-
 include/linux/sched.h                              |    7 +-
 include/linux/skbuff.h                             |   40 +-
 include/net/fou.h                                  |    2 +
 include/net/ip_tunnels.h                           |   28 +-
 include/net/tcp.h                                  |    3 +
 include/net/xdp.h                                  |   29 -
 include/net/xsk_buff_pool.h                        |    9 +-
 include/uapi/linux/bpf.h                           |   61 +-
 kernel/bpf/Makefile                                |    3 +-
 kernel/bpf/arraymap.c                              |   12 +-
 kernel/bpf/bloom_filter.c                          |   29 +-
 kernel/bpf/bpf_cgrp_storage.c                      |   23 +-
 kernel/bpf/bpf_inode_storage.c                     |   22 +-
 kernel/bpf/bpf_iter.c                              |   70 +
 kernel/bpf/bpf_local_storage.c                     |  382 +++--
 kernel/bpf/bpf_struct_ops.c                        |  260 ++-
 kernel/bpf/bpf_task_storage.c                      |   27 +-
 kernel/bpf/btf.c                                   |  279 +++-
 kernel/bpf/cpumap.c                                |    8 +-
 kernel/bpf/cpumask.c                               |   43 +-
 kernel/bpf/devmap.c                                |   24 +-
 kernel/bpf/hashtab.c                               |   38 +-
 kernel/bpf/helpers.c                               |  139 +-
 kernel/bpf/local_storage.c                         |    6 +-
 kernel/bpf/log.c                                   |  330 ++++
 kernel/bpf/lpm_trie.c                              |    6 +-
 kernel/bpf/memalloc.c                              |   59 +-
 kernel/bpf/queue_stack_maps.c                      |   22 +-
 kernel/bpf/reuseport_array.c                       |    2 +-
 kernel/bpf/ringbuf.c                               |    6 +-
 kernel/bpf/stackmap.c                              |    6 +-
 kernel/bpf/syscall.c                               |  112 +-
 kernel/bpf/trampoline.c                            |   28 -
 kernel/bpf/verifier.c                              | 1096 ++++++++++---
 kernel/cgroup/cgroup.c                             |   14 +-
 kernel/module/internal.h                           |    1 -
 kernel/module/kallsyms.c                           |   16 +-
 mm/maccess.c                                       |   16 +-
 mm/usercopy.c                                      |    2 +-
 net/bpf/bpf_dummy_struct_ops.c                     |   14 +-
 net/bpf/test_run.c                                 |   34 +-
 net/core/bpf_sk_storage.c                          |   24 +-
 net/core/filter.c                                  |   29 +-
 net/core/sock_map.c                                |    8 +-
 net/core/xdp.c                                     |   19 +-
 net/ipv4/Makefile                                  |    2 +-
 net/ipv4/bpf_tcp_ca.c                              |   23 +-
 net/ipv4/fou_bpf.c                                 |  119 ++
 net/ipv4/fou_core.c                                |    5 +
 net/ipv4/ip_tunnel.c                               |   22 +-
 net/ipv4/ipip.c                                    |    1 +
 net/ipv4/tcp_cong.c                                |   66 +-
 net/ipv6/sit.c                                     |    2 +-
 net/netfilter/nf_conntrack_bpf.c                   |    5 +-
 net/xdp/xsk.c                                      |    9 +-
 net/xdp/xsk_queue.h                                |   19 +-
 net/xdp/xskmap.c                                   |    8 +-
 samples/bpf/cpustat_kern.c                         |    4 +-
 samples/bpf/hbm.c                                  |    5 +-
 samples/bpf/ibumad_kern.c                          |    4 +-
 samples/bpf/lwt_len_hist.sh                        |    2 +-
 samples/bpf/offwaketime_kern.c                     |    2 +-
 samples/bpf/task_fd_query_user.c                   |    4 +-
 samples/bpf/test_lwt_bpf.sh                        |    2 +-
 samples/bpf/test_overhead_tp.bpf.c                 |    4 +-
 scripts/bpf_doc.py                                 |    2 +-
 tools/bpf/bpftool/Documentation/bpftool-prog.rst   |   18 +-
 tools/bpf/bpftool/bash-completion/bpftool          |   42 +-
 tools/bpf/bpftool/btf_dumper.c                     |   83 +
 tools/bpf/bpftool/cfg.c                            |   29 +-
 tools/bpf/bpftool/cfg.h                            |    5 +-
 tools/bpf/bpftool/json_writer.c                    |    2 +-
 tools/bpf/bpftool/json_writer.h                    |    1 +
 tools/bpf/bpftool/main.h                           |    2 +
 tools/bpf/bpftool/prog.c                           |   81 +-
 tools/bpf/bpftool/xlated_dumper.c                  |   54 +-
 tools/bpf/bpftool/xlated_dumper.h                  |    3 +-
 tools/include/uapi/linux/bpf.h                     |   61 +-
 tools/lib/bpf/bpf.c                                |   25 +-
 tools/lib/bpf/bpf.h                                |   25 +-
 tools/lib/bpf/bpf_gen_internal.h                   |    4 +-
 tools/lib/bpf/bpf_helpers.h                        |    5 +
 tools/lib/bpf/gen_loader.c                         |   48 +-
 tools/lib/bpf/libbpf.c                             |  245 ++-
 tools/lib/bpf/libbpf.h                             |    3 +
 tools/lib/bpf/libbpf.map                           |    1 +
 tools/lib/bpf/linker.c                             |   14 +-
 tools/lib/bpf/zip.c                                |    6 +
 tools/testing/selftests/bpf/DENYLIST.aarch64       |    1 +
 tools/testing/selftests/bpf/DENYLIST.s390x         |    2 +
 tools/testing/selftests/bpf/Makefile               |   22 +-
 tools/testing/selftests/bpf/autoconf_helper.h      |    9 +
 tools/testing/selftests/bpf/bench.c                |    4 +
 .../bpf/benchs/bench_local_storage_create.c        |  264 +++
 .../selftests/bpf/bpf_testmod/bpf_testmod.c        |   60 +-
 .../selftests/bpf/bpf_testmod/bpf_testmod.h        |    6 +
 tools/testing/selftests/bpf/get_cgroup_id_user.c   |    9 +-
 tools/testing/selftests/bpf/json_writer.c          |    1 +
 tools/testing/selftests/bpf/json_writer.h          |    1 +
 tools/testing/selftests/bpf/network_helpers.c      |    2 +-
 tools/testing/selftests/bpf/prog_tests/align.c     |    4 +-
 .../testing/selftests/bpf/prog_tests/bpf_tcp_ca.c  |  160 ++
 .../selftests/bpf/prog_tests/bpf_verif_scale.c     |    6 +
 .../selftests/bpf/prog_tests/cg_storage_multi.c    |    8 +-
 tools/testing/selftests/bpf/prog_tests/cpumask.c   |    2 +-
 .../testing/selftests/bpf/prog_tests/ctx_rewrite.c |   14 +-
 .../testing/selftests/bpf/prog_tests/fib_lookup.c  |   12 +-
 .../selftests/bpf/prog_tests/get_branch_snapshot.c |    4 +-
 .../bpf/prog_tests/get_stackid_cannot_attach.c     |    1 +
 tools/testing/selftests/bpf/prog_tests/iters.c     |  106 ++
 .../selftests/bpf/prog_tests/kprobe_multi_test.c   |   11 +-
 .../selftests/bpf/prog_tests/local_kptr_stash.c    |   60 +
 tools/testing/selftests/bpf/prog_tests/log_fixup.c |    1 +
 tools/testing/selftests/bpf/prog_tests/map_ops.c   |  162 ++
 .../bpf/prog_tests/module_fentry_shadow.c          |  128 ++
 .../selftests/bpf/prog_tests/perf_event_stackmap.c |    3 +-
 .../testing/selftests/bpf/prog_tests/send_signal.c |    6 +-
 .../selftests/bpf/prog_tests/stacktrace_build_id.c |   19 +-
 .../bpf/prog_tests/stacktrace_build_id_nmi.c       |   32 +-
 .../selftests/bpf/prog_tests/task_fd_query_tp.c    |    9 +-
 .../testing/selftests/bpf/prog_tests/task_kfunc.c  |    3 +-
 .../selftests/bpf/prog_tests/tcp_hdr_options.c     |    4 +-
 .../selftests/bpf/prog_tests/test_local_storage.c  |   54 +-
 .../testing/selftests/bpf/prog_tests/test_tunnel.c |  153 +-
 .../selftests/bpf/prog_tests/tp_attach_query.c     |    9 +-
 .../selftests/bpf/prog_tests/trace_printk.c        |   10 +-
 .../selftests/bpf/prog_tests/trace_vprintk.c       |   10 +-
 .../selftests/bpf/prog_tests/uprobe_autoattach.c   |    1 -
 tools/testing/selftests/bpf/prog_tests/verifier.c  |  108 ++
 .../selftests/bpf/prog_tests/verifier_log.c        |  450 +++++
 .../selftests/bpf/prog_tests/xdp_do_redirect.c     |    7 +-
 .../bpf/progs/bench_local_storage_create.c         |   82 +
 tools/testing/selftests/bpf/progs/bpf_iter_ksym.c  |    1 -
 .../selftests/bpf/progs/bpf_iter_setsockopt.c      |    1 -
 tools/testing/selftests/bpf/progs/bpf_loop.c       |    2 -
 tools/testing/selftests/bpf/progs/bpf_misc.h       |  148 ++
 tools/testing/selftests/bpf/progs/cb_refs.c        |    1 -
 .../bpf/progs/cgroup_skb_sk_lookup_kern.c          |    1 -
 .../selftests/bpf/progs/cgrp_kfunc_common.h        |    8 +-
 .../selftests/bpf/progs/cgrp_kfunc_failure.c       |  104 +-
 .../selftests/bpf/progs/cgrp_kfunc_success.c       |   15 +-
 .../selftests/bpf/progs/cgrp_ls_attach_cgroup.c    |    1 -
 .../selftests/bpf/progs/cgrp_ls_sleepable.c        |    1 -
 tools/testing/selftests/bpf/progs/connect4_prog.c  |    2 +-
 tools/testing/selftests/bpf/progs/core_kern.c      |    2 +-
 tools/testing/selftests/bpf/progs/cpumask_common.h |    7 +-
 .../testing/selftests/bpf/progs/cpumask_failure.c  |   96 +-
 .../testing/selftests/bpf/progs/cpumask_success.c  |   30 +-
 tools/testing/selftests/bpf/progs/dynptr_fail.c    |    5 +-
 tools/testing/selftests/bpf/progs/dynptr_success.c |    5 +-
 tools/testing/selftests/bpf/progs/err.h            |   18 +
 tools/testing/selftests/bpf/progs/fexit_bpf2bpf.c  |    2 -
 .../selftests/bpf/progs/freplace_attach_probe.c    |    2 +-
 tools/testing/selftests/bpf/progs/iters.c          |  719 ++++++++
 tools/testing/selftests/bpf/progs/iters_looping.c  |  163 ++
 tools/testing/selftests/bpf/progs/iters_num.c      |  242 +++
 .../selftests/bpf/progs/iters_state_safety.c       |  426 +++++
 .../selftests/bpf/progs/iters_testmod_seq.c        |   79 +
 tools/testing/selftests/bpf/progs/linked_funcs1.c  |    3 +
 tools/testing/selftests/bpf/progs/linked_funcs2.c  |    3 +
 tools/testing/selftests/bpf/progs/linked_list.c    |    4 -
 .../testing/selftests/bpf/progs/linked_list_fail.c |    1 -
 .../testing/selftests/bpf/progs/local_kptr_stash.c |  108 ++
 tools/testing/selftests/bpf/progs/local_storage.c  |   76 +-
 tools/testing/selftests/bpf/progs/loop6.c          |    3 +
 tools/testing/selftests/bpf/progs/lsm.c            |    4 +-
 tools/testing/selftests/bpf/progs/map_kptr.c       |    3 -
 tools/testing/selftests/bpf/progs/map_kptr_fail.c  |   23 +
 tools/testing/selftests/bpf/progs/netcnt_prog.c    |    1 -
 .../selftests/bpf/progs/netif_receive_skb.c        |    1 -
 tools/testing/selftests/bpf/progs/perfbuf_bench.c  |    1 -
 tools/testing/selftests/bpf/progs/profiler.inc.h   |    3 +-
 tools/testing/selftests/bpf/progs/pyperf.h         |   16 +-
 tools/testing/selftests/bpf/progs/pyperf600_iter.c |    7 +
 .../selftests/bpf/progs/pyperf600_nounroll.c       |    3 -
 .../bpf/progs/rbtree_btf_fail__wrong_node_type.c   |   11 -
 tools/testing/selftests/bpf/progs/rbtree_fail.c    |    3 +-
 tools/testing/selftests/bpf/progs/rcu_read_lock.c  |   13 +-
 .../bpf/progs/read_bpf_task_storage_busy.c         |    1 -
 tools/testing/selftests/bpf/progs/recvmsg4_prog.c  |    2 -
 tools/testing/selftests/bpf/progs/recvmsg6_prog.c  |    2 -
 tools/testing/selftests/bpf/progs/sendmsg4_prog.c  |    2 -
 .../selftests/bpf/progs/sockmap_verdict_prog.c     |    4 +
 tools/testing/selftests/bpf/progs/strobemeta.h     |    1 -
 .../selftests/bpf/progs/tailcall_bpf2bpf3.c        |   11 +
 .../selftests/bpf/progs/tailcall_bpf2bpf6.c        |    3 +
 .../selftests/bpf/progs/task_kfunc_common.h        |    6 +-
 .../selftests/bpf/progs/task_kfunc_failure.c       |  178 +-
 .../selftests/bpf/progs/task_kfunc_success.c       |   78 +-
 tools/testing/selftests/bpf/progs/tcp_ca_update.c  |   80 +
 .../selftests/bpf/progs/tcp_ca_write_sk_pacing.c   |   13 +-
 tools/testing/selftests/bpf/progs/test_bpf_nf.c    |    1 -
 .../selftests/bpf/progs/test_cls_redirect_dynptr.c |    1 -
 .../bpf/progs/test_core_reloc_bitfields_probed.c   |    1 -
 .../selftests/bpf/progs/test_global_func1.c        |    4 +
 .../selftests/bpf/progs/test_global_func2.c        |    4 +
 .../selftests/bpf/progs/test_hash_large_key.c      |    2 +-
 .../bpf/progs/test_ksyms_btf_write_check.c         |    1 -
 .../testing/selftests/bpf/progs/test_ksyms_weak.c  |   17 +-
 .../selftests/bpf/progs/test_legacy_printk.c       |    2 +-
 tools/testing/selftests/bpf/progs/test_map_lock.c  |    2 +-
 tools/testing/selftests/bpf/progs/test_map_ops.c   |  138 ++
 tools/testing/selftests/bpf/progs/test_obj_id.c    |    2 +
 .../selftests/bpf/progs/test_parse_tcp_hdr_opt.c   |    1 -
 .../bpf/progs/test_parse_tcp_hdr_opt_dynptr.c      |    2 +-
 .../testing/selftests/bpf/progs/test_pkt_access.c  |    5 +
 tools/testing/selftests/bpf/progs/test_ringbuf.c   |    1 -
 .../selftests/bpf/progs/test_ringbuf_map_key.c     |    1 +
 .../selftests/bpf/progs/test_ringbuf_multi.c       |    1 -
 .../bpf/progs/test_select_reuseport_kern.c         |    2 +-
 tools/testing/selftests/bpf/progs/test_sk_assign.c |    4 +-
 tools/testing/selftests/bpf/progs/test_sk_lookup.c |    9 +-
 .../selftests/bpf/progs/test_sk_lookup_kern.c      |    2 -
 .../selftests/bpf/progs/test_sk_storage_tracing.c  |   16 +
 .../testing/selftests/bpf/progs/test_sock_fields.c |    2 +-
 .../selftests/bpf/progs/test_sockmap_kern.h        |   14 +-
 tools/testing/selftests/bpf/progs/test_spin_lock.c |    3 +
 .../selftests/bpf/progs/test_stacktrace_map.c      |    2 +-
 tools/testing/selftests/bpf/progs/test_tc_dtime.c  |    4 +-
 tools/testing/selftests/bpf/progs/test_tc_neigh.c  |    4 +-
 .../testing/selftests/bpf/progs/test_tcpbpf_kern.c |    2 -
 .../testing/selftests/bpf/progs/test_tracepoint.c  |    2 +-
 .../testing/selftests/bpf/progs/test_tunnel_kern.c |  123 +-
 .../selftests/bpf/progs/test_usdt_multispec.c      |    2 -
 .../selftests/bpf/progs/test_verif_scale1.c        |    2 +-
 .../selftests/bpf/progs/test_verif_scale2.c        |    2 +-
 .../selftests/bpf/progs/test_verif_scale3.c        |    2 +-
 .../bpf/progs/test_xdp_adjust_tail_grow.c          |    2 -
 .../testing/selftests/bpf/progs/test_xdp_bpf2bpf.c |    2 -
 .../selftests/bpf/progs/test_xdp_do_redirect.c     |   38 +-
 .../testing/selftests/bpf/progs/test_xdp_dynptr.c  |    2 -
 .../selftests/bpf/progs/test_xdp_noinline.c        |   43 -
 tools/testing/selftests/bpf/progs/test_xdp_vlan.c  |   13 -
 tools/testing/selftests/bpf/progs/type_cast.c      |    1 -
 tools/testing/selftests/bpf/progs/udp_limit.c      |    2 -
 .../selftests/bpf/progs/user_ringbuf_success.c     |    6 -
 tools/testing/selftests/bpf/progs/verifier_and.c   |  107 ++
 .../selftests/bpf/progs/verifier_array_access.c    |  529 ++++++
 .../selftests/bpf/progs/verifier_basic_stack.c     |  100 ++
 .../bpf/progs/verifier_bounds_deduction.c          |  171 ++
 .../progs/verifier_bounds_deduction_non_const.c    |  639 ++++++++
 .../bpf/progs/verifier_bounds_mix_sign_unsign.c    |  554 +++++++
 tools/testing/selftests/bpf/progs/verifier_cfg.c   |  100 ++
 .../bpf/progs/verifier_cgroup_inv_retcode.c        |   89 +
 .../selftests/bpf/progs/verifier_cgroup_skb.c      |  227 +++
 .../selftests/bpf/progs/verifier_cgroup_storage.c  |  308 ++++
 .../selftests/bpf/progs/verifier_const_or.c        |   82 +
 .../selftests/bpf/progs/verifier_ctx_sk_msg.c      |  228 +++
 .../verifier_direct_stack_access_wraparound.c      |   56 +
 tools/testing/selftests/bpf/progs/verifier_div0.c  |  213 +++
 .../selftests/bpf/progs/verifier_div_overflow.c    |  144 ++
 .../bpf/progs/verifier_helper_access_var_len.c     |  825 ++++++++++
 .../bpf/progs/verifier_helper_packet_access.c      |  550 +++++++
 .../bpf/progs/verifier_helper_restricted.c         |  279 ++++
 .../bpf/progs/verifier_helper_value_access.c       | 1245 ++++++++++++++
 .../testing/selftests/bpf/progs/verifier_int_ptr.c |  157 ++
 .../testing/selftests/bpf/progs/verifier_ld_ind.c  |  110 ++
 .../selftests/bpf/progs/verifier_leak_ptr.c        |   92 ++
 .../testing/selftests/bpf/progs/verifier_map_ptr.c |  159 ++
 .../selftests/bpf/progs/verifier_map_ret_val.c     |  110 ++
 .../testing/selftests/bpf/progs/verifier_masking.c |  410 +++++
 .../selftests/bpf/progs/verifier_meta_access.c     |  284 ++++
 .../selftests/bpf/progs/verifier_raw_stack.c       |  371 +++++
 .../selftests/bpf/progs/verifier_raw_tp_writable.c |   50 +
 .../testing/selftests/bpf/progs/verifier_ringbuf.c |  131 ++
 .../selftests/bpf/progs/verifier_spill_fill.c      |  374 +++++
 .../selftests/bpf/progs/verifier_stack_ptr.c       |  484 ++++++
 .../testing/selftests/bpf/progs/verifier_uninit.c  |   61 +
 tools/testing/selftests/bpf/progs/verifier_value.c |  158 ++
 .../selftests/bpf/progs/verifier_value_adj_spill.c |   78 +
 .../selftests/bpf/progs/verifier_value_or_null.c   |  288 ++++
 .../testing/selftests/bpf/progs/verifier_var_off.c |  349 ++++
 tools/testing/selftests/bpf/progs/verifier_xadd.c  |  124 ++
 tools/testing/selftests/bpf/progs/verifier_xdp.c   |   24 +
 .../bpf/progs/verifier_xdp_direct_packet_access.c  | 1722 ++++++++++++++++++++
 tools/testing/selftests/bpf/progs/xdp_features.c   |    1 -
 tools/testing/selftests/bpf/progs/xdping_kern.c    |    2 -
 tools/testing/selftests/bpf/progs/xdpwall.c        |    1 -
 tools/testing/selftests/bpf/progs/xsk_xdp_progs.c  |   25 +
 tools/testing/selftests/bpf/test_ftrace.sh         |    7 +-
 tools/testing/selftests/bpf/test_loader.c          |  536 +++++-
 tools/testing/selftests/bpf/test_progs.c           |  108 +-
 tools/testing/selftests/bpf/test_progs.h           |    2 +-
 tools/testing/selftests/bpf/test_tunnel.sh         |   13 +-
 tools/testing/selftests/bpf/test_verifier.c        |   27 +-
 tools/testing/selftests/bpf/test_verifier_log.c    |  175 --
 tools/testing/selftests/bpf/test_xsk.sh            |    1 +
 tools/testing/selftests/bpf/testing_helpers.c      |   22 +-
 tools/testing/selftests/bpf/testing_helpers.h      |    2 +
 tools/testing/selftests/bpf/trace_helpers.c        |   90 +-
 tools/testing/selftests/bpf/trace_helpers.h        |    5 +
 tools/testing/selftests/bpf/unpriv_helpers.c       |   26 +
 tools/testing/selftests/bpf/unpriv_helpers.h       |    7 +
 tools/testing/selftests/bpf/verifier/and.c         |   68 -
 .../testing/selftests/bpf/verifier/array_access.c  |  379 -----
 tools/testing/selftests/bpf/verifier/basic_stack.c |   64 -
 tools/testing/selftests/bpf/verifier/bounds.c      |  129 ++
 .../selftests/bpf/verifier/bounds_deduction.c      |  136 --
 .../bpf/verifier/bounds_mix_sign_unsign.c          |  411 -----
 .../selftests/bpf/verifier/btf_ctx_access.c        |   13 +
 tools/testing/selftests/bpf/verifier/calls.c       |   10 +-
 tools/testing/selftests/bpf/verifier/cfg.c         |   73 -
 .../selftests/bpf/verifier/cgroup_inv_retcode.c    |   72 -
 tools/testing/selftests/bpf/verifier/cgroup_skb.c  |  197 ---
 .../selftests/bpf/verifier/cgroup_storage.c        |  220 ---
 tools/testing/selftests/bpf/verifier/const_or.c    |   60 -
 tools/testing/selftests/bpf/verifier/ctx_sk_msg.c  |  181 --
 .../bpf/verifier/direct_stack_access_wraparound.c  |   40 -
 tools/testing/selftests/bpf/verifier/div0.c        |  184 ---
 .../testing/selftests/bpf/verifier/div_overflow.c  |  110 --
 .../selftests/bpf/verifier/helper_access_var_len.c |  650 --------
 .../selftests/bpf/verifier/helper_packet_access.c  |  460 ------
 .../selftests/bpf/verifier/helper_restricted.c     |  196 ---
 .../selftests/bpf/verifier/helper_value_access.c   |  953 -----------
 tools/testing/selftests/bpf/verifier/int_ptr.c     |  161 --
 tools/testing/selftests/bpf/verifier/ld_ind.c      |   72 -
 tools/testing/selftests/bpf/verifier/leak_ptr.c    |   67 -
 tools/testing/selftests/bpf/verifier/map_ptr.c     |   99 --
 tools/testing/selftests/bpf/verifier/map_ret_val.c |   65 -
 tools/testing/selftests/bpf/verifier/masking.c     |  322 ----
 tools/testing/selftests/bpf/verifier/meta_access.c |  235 ---
 tools/testing/selftests/bpf/verifier/raw_stack.c   |  305 ----
 .../selftests/bpf/verifier/raw_tp_writable.c       |   35 -
 .../testing/selftests/bpf/verifier/ref_tracking.c  |    6 +-
 tools/testing/selftests/bpf/verifier/ringbuf.c     |   95 --
 tools/testing/selftests/bpf/verifier/spill_fill.c  |  345 ----
 tools/testing/selftests/bpf/verifier/stack_ptr.c   |  359 ----
 tools/testing/selftests/bpf/verifier/uninit.c      |   39 -
 tools/testing/selftests/bpf/verifier/value.c       |  104 --
 .../selftests/bpf/verifier/value_adj_spill.c       |   43 -
 .../testing/selftests/bpf/verifier/value_or_null.c |  220 ---
 tools/testing/selftests/bpf/verifier/var_off.c     |  291 ----
 tools/testing/selftests/bpf/verifier/xadd.c        |   97 --
 tools/testing/selftests/bpf/verifier/xdp.c         |   14 -
 .../bpf/verifier/xdp_direct_packet_access.c        | 1468 -----------------
 tools/testing/selftests/bpf/veristat.c             |  207 ++-
 tools/testing/selftests/bpf/xdp_features.c         |   67 +-
 tools/testing/selftests/bpf/xsk_xdp_metadata.h     |    5 +
 tools/testing/selftests/bpf/xskxceiver.c           |   96 +-
 tools/testing/selftests/bpf/xskxceiver.h           |    4 +-
 356 files changed, 21786 insertions(+), 11275 deletions(-)
 create mode 100644 Documentation/bpf/libbpf/libbpf_overview.rst
 create mode 100644 kernel/bpf/log.c
 create mode 100644 net/ipv4/fou_bpf.c
 create mode 100644 tools/testing/selftests/bpf/autoconf_helper.h
 create mode 100644 tools/testing/selftests/bpf/benchs/bench_local_storage_create.c
 create mode 120000 tools/testing/selftests/bpf/json_writer.c
 create mode 120000 tools/testing/selftests/bpf/json_writer.h
 create mode 100644 tools/testing/selftests/bpf/prog_tests/iters.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/local_kptr_stash.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/map_ops.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/module_fentry_shadow.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/verifier.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/verifier_log.c
 create mode 100644 tools/testing/selftests/bpf/progs/bench_local_storage_create.c
 create mode 100644 tools/testing/selftests/bpf/progs/err.h
 create mode 100644 tools/testing/selftests/bpf/progs/iters.c
 create mode 100644 tools/testing/selftests/bpf/progs/iters_looping.c
 create mode 100644 tools/testing/selftests/bpf/progs/iters_num.c
 create mode 100644 tools/testing/selftests/bpf/progs/iters_state_safety.c
 create mode 100644 tools/testing/selftests/bpf/progs/iters_testmod_seq.c
 create mode 100644 tools/testing/selftests/bpf/progs/local_kptr_stash.c
 create mode 100644 tools/testing/selftests/bpf/progs/pyperf600_iter.c
 create mode 100644 tools/testing/selftests/bpf/progs/tcp_ca_update.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_map_ops.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_and.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_array_access.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_basic_stack.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_bounds_deduction.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_bounds_deduction_non_const.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_bounds_mix_sign_unsign.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_cfg.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_cgroup_inv_retcode.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_cgroup_skb.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_cgroup_storage.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_const_or.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_ctx_sk_msg.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_direct_stack_access_wraparound.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_div0.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_div_overflow.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_helper_access_var_len.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_helper_packet_access.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_helper_restricted.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_helper_value_access.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_int_ptr.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_ld_ind.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_leak_ptr.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_map_ptr.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_map_ret_val.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_masking.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_meta_access.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_raw_stack.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_raw_tp_writable.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_ringbuf.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_spill_fill.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_stack_ptr.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_uninit.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_value.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_value_adj_spill.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_value_or_null.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_var_off.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_xadd.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_xdp.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_xdp_direct_packet_access.c
 delete mode 100644 tools/testing/selftests/bpf/test_verifier_log.c
 create mode 100644 tools/testing/selftests/bpf/unpriv_helpers.c
 create mode 100644 tools/testing/selftests/bpf/unpriv_helpers.h
 delete mode 100644 tools/testing/selftests/bpf/verifier/and.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/array_access.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/basic_stack.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/bounds_deduction.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/bounds_mix_sign_unsign.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/cfg.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/cgroup_inv_retcode.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/cgroup_skb.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/cgroup_storage.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/const_or.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/ctx_sk_msg.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/direct_stack_access_wraparound.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/div0.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/div_overflow.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/helper_access_var_len.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/helper_packet_access.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/helper_restricted.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/helper_value_access.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/int_ptr.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/ld_ind.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/leak_ptr.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/map_ptr.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/map_ret_val.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/masking.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/meta_access.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/raw_stack.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/raw_tp_writable.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/ringbuf.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/spill_fill.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/stack_ptr.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/uninit.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/value.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/value_adj_spill.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/value_or_null.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/var_off.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/xadd.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/xdp.c
 delete mode 100644 tools/testing/selftests/bpf/verifier/xdp_direct_packet_access.c
 create mode 100644 tools/testing/selftests/bpf/xsk_xdp_metadata.h

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ