linux-stable/tools/testing/selftests/bpf/verifier
Kumar Kartikeya Dwivedi 5cdccadcac bpf: Prepare prog_test_struct kfuncs for runtime tests
In an effort to actually test the refcounting logic at runtime, add a
refcount_t member to prog_test_ref_kfunc and use it in selftests to
verify and test the whole logic more exhaustively.

The kfunc calls for prog_test_member do not require runtime refcounting,
as they are only used for verifier selftests, not during runtime
execution. Hence, their implementation now has a WARN_ON_ONCE as it is
not meant to be reachable code at runtime. It is strictly used in tests
triggering failure cases in the verifier. bpf_kfunc_call_memb_release is
called from map free path, since prog_test_member is embedded in map
value for some verifier tests, so we skip WARN_ON_ONCE for it.

Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://lore.kernel.org/r/20220511194654.765705-3-memxor@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2022-05-11 16:57:27 -07:00
..
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
and.c bpf, selftests: Adjust few selftest outcomes wrt unreachable code 2021-06-14 23:06:38 +02:00
array_access.c bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off. 2021-11-01 18:05:11 -07:00
atomic_and.c bpf, x86: Fix BPF_FETCH atomic and/or/xor with r0 as src 2021-02-22 18:03:11 +01:00
atomic_bounds.c bpf: Propagate stack bounds to registers in atomics w/ BPF_FETCH 2021-02-02 18:23:29 -08:00
atomic_cmpxchg.c bpf, selftests: Update test case for atomic cmpxchg on r0 with pointer 2021-12-14 19:33:06 -08:00
atomic_fetch.c bpf, selftests: Add test case for atomic fetch on spilled pointer 2021-12-14 19:33:06 -08:00
atomic_fetch_add.c bpf: Add tests for new BPF atomic operations 2021-01-14 18:34:29 -08:00
atomic_invalid.c bpf: Small BPF verifier log improvements 2022-03-03 16:54:10 +01:00
atomic_or.c bpf: Explicitly zero-extend R0 after 32-bit cmpxchg 2021-03-04 19:06:03 -08:00
atomic_xchg.c bpf: Add tests for new BPF atomic operations 2021-01-14 18:34:29 -08:00
atomic_xor.c selftests/bpf: Fix endianness issues in atomic tests 2021-02-10 11:55:22 -08:00
basic.c selftests/bpf: Fix test_verifier after introducing resolve_pseudo_ldimm64 2020-10-06 20:16:57 -07:00
basic_call.c
basic_instr.c
basic_stack.c selftest/bpf: Adjust expected verifier errors 2021-02-10 10:44:19 -08:00
basic_stx_ldx.c
bounds.c bpf: Small BPF verifier log improvements 2022-03-03 16:54:10 +01:00
bounds_deduction.c bpf: Disallow negative offset in check_ptr_off_reg 2022-03-05 15:29:35 -08:00
bounds_mix_sign_unsign.c bpf: Update selftests to reflect new error states 2021-04-16 23:52:15 +02:00
bpf_get_stack.c bpf/selftests: Add bpf_get_task_stack retval bounds verifier test 2021-04-19 18:23:33 -07:00
btf_ctx_access.c selftests/bpf: Add test to access int ptr argument in tracing program 2021-12-13 09:24:22 -08:00
calls.c selftests/bpf: Add test for strict BTF type check 2022-04-25 20:26:45 -07:00
cfg.c
cgroup_inv_retcode.c
cgroup_skb.c
cgroup_storage.c
const_or.c selftest/bpf: Adjust expected verifier errors 2021-02-10 10:44:19 -08:00
ctx.c bpf: Disallow negative offset in check_ptr_off_reg 2022-03-05 15:29:35 -08:00
ctx_sk_lookup.c selftests/bpf: Add tests for accessing ingress_ifindex in bpf_sk_lookup 2021-11-10 16:29:59 -08:00
ctx_sk_msg.c
ctx_skb.c selftests/bpf: Use __BYTE_ORDER__ 2021-10-25 20:39:42 -07:00
d_path.c selftests/bpf: Add verifier test for d_path helper 2020-08-25 15:41:15 -07:00
dead_code.c selftests, bpf: Test that dead ldx_w insns are accepted 2021-08-13 17:46:26 +02:00
direct_packet_access.c bpf: Small BPF verifier log improvements 2022-03-03 16:54:10 +01:00
direct_stack_access_wraparound.c
direct_value_access.c selftests/bpf: Mark tests that require unaligned memory access 2020-11-18 17:45:35 -08:00
div0.c
div_overflow.c
event_output.c selftests/bpf: Fix cgroup sockopt verifier test 2020-07-11 01:32:15 +02:00
helper_access_var_len.c bpf: Small BPF verifier log improvements 2022-03-03 16:54:10 +01:00
helper_packet_access.c
helper_restricted.c selftests/bpf: Add tests for restricted helpers 2021-11-15 20:37:11 -08:00
helper_value_access.c bpf, selftests: Use bpf_probe_read_kernel 2020-06-02 21:04:04 +02:00
int_ptr.c selftest/bpf: Adjust expected verifier errors 2021-02-10 10:44:19 -08:00
jit.c bpf, x64: Save bytes for DIV by reducing reg copies 2021-10-06 15:24:36 +02:00
jmp32.c bpf: Small BPF verifier log improvements 2022-03-03 16:54:10 +01:00
jset.c bpf, selftests: Adjust few selftest outcomes wrt unreachable code 2021-06-14 23:06:38 +02:00
jump.c
junk_insn.c
ld_abs.c
ld_dw.c
ld_imm64.c selftests/bpf: Fix test_verifier after introducing resolve_pseudo_ldimm64 2020-10-06 20:16:57 -07:00
ld_ind.c
leak_ptr.c bpf: Rename BPF_XADD and prepare to encode other atomics in .imm 2021-01-14 18:34:29 -08:00
loops1.c bpf: Add loop test case with 32 bit reg comparison against 0 2019-10-04 12:27:36 -07:00
lwt.c selftests/bpf: Use __BYTE_ORDER__ 2021-10-25 20:39:42 -07:00
map_in_map.c selftests/bpf: Check map in map pruning 2021-11-12 17:23:04 -08:00
map_kptr.c bpf: Prepare prog_test_struct kfuncs for runtime tests 2022-05-11 16:57:27 -07:00
map_ptr.c bpf: Update selftests to reflect new error states 2021-04-16 23:52:15 +02:00
map_ptr_mixing.c bpf: Support access to bpf map fields 2020-06-22 22:22:58 +02:00
map_ret_val.c
masking.c
meta_access.c bpf: Rename BPF_XADD and prepare to encode other atomics in .imm 2021-01-14 18:34:29 -08:00
perf_event_sample_period.c selftests/bpf: Use __BYTE_ORDER__ 2021-10-25 20:39:42 -07:00
precise.c bpf: Small BPF verifier log improvements 2022-03-03 16:54:10 +01:00
prevent_map_lookup.c selftests/bpf: Test that lookup on SOCKMAP/SOCKHASH is allowed 2020-04-29 23:30:59 +02:00
raw_stack.c bpf: Small BPF verifier log improvements 2022-03-03 16:54:10 +01:00
raw_tp_writable.c selftests/bpf: Mark tests that require unaligned memory access 2020-11-18 17:45:35 -08:00
ref_tracking.c bpf: Tag argument to be released in bpf_func_proto 2022-04-25 17:31:35 -07:00
regalloc.c selftests/bpf: Mark tests that require unaligned memory access 2020-11-18 17:45:35 -08:00
ringbuf.c bpf, selftests: Add ringbuf memory type confusion test 2022-01-19 01:27:03 +01:00
runtime_jit.c bpf: Add further test_verifier cases for record_func_key 2019-12-19 13:39:22 -08:00
scale.c
search_pruning.c bpf: Small BPF verifier log improvements 2022-03-03 16:54:10 +01:00
sock.c bpf: Tag argument to be released in bpf_func_proto 2022-04-25 17:31:35 -07:00
spill_fill.c bpf: Small BPF verifier log improvements 2022-03-03 16:54:10 +01:00
spin_lock.c
stack_ptr.c bpf, selftests: Adjust few selftest result_unpriv outcomes 2021-05-25 22:08:53 +02:00
subreg.c
uninit.c
unpriv.c bpf: Small BPF verifier log improvements 2022-03-03 16:54:10 +01:00
value.c
value_adj_spill.c
value_illegal_alu.c bpf: Small BPF verifier log improvements 2022-03-03 16:54:10 +01:00
value_or_null.c bpf: Selftests, verifier case for non null pointer map value branch 2020-05-21 17:44:25 -07:00
value_ptr_arith.c bpf: Small BPF verifier log improvements 2022-03-03 16:54:10 +01:00
var_off.c bpf: Small BPF verifier log improvements 2022-03-03 16:54:10 +01:00
wide_access.c selftests/bpf: Mark tests that require unaligned memory access 2020-11-18 17:45:35 -08:00
xadd.c bpf: Rename BPF_XADD and prepare to encode other atomics in .imm 2021-01-14 18:34:29 -08:00
xdp.c
xdp_direct_packet_access.c bpf: Add selftests to cover packet access corner cases 2021-12-08 15:42:26 +01:00