H A D | verifier.c | 195 static int acquire_reference_state(struct bpf_verifier_env *env, int insn_idx); 196 static int release_reference(struct bpf_verifier_env *env, int ref_obj_id); 197 static void invalidate_non_owning_refs(struct bpf_verifier_env *env); 198 static bool in_rbtree_lock_required_cb(struct bpf_verifier_env *env); 199 static int ref_set_non_owning(struct bpf_verifier_env *env, 201 static void specialize_kfunc(struct bpf_verifier_env *env, 354 struct bpf_verifier_env *env = private_data; local 357 if (!bpf_verifier_log_needed(&env->log)) 361 bpf_verifier_vlog(&env->log, fmt, args); 365 static void verbose_invalid_scalar(struct bpf_verifier_env *env, argument 424 subprog_is_global(const struct bpf_verifier_env *env, int subprog) argument 431 subprog_name(const struct bpf_verifier_env *env, int subprog) argument 442 mark_subprog_exc_cb(struct bpf_verifier_env *env, int subprog) argument 451 subprog_is_exc_cb(struct bpf_verifier_env *env, int subprog) argument 546 is_may_goto_insn_at(struct bpf_verifier_env *env, int insn_idx) argument 586 func(struct bpf_verifier_env *env, const struct bpf_reg_state *reg) argument 608 stack_slot_obj_get_spi(struct bpf_verifier_env *env, struct bpf_reg_state *reg, const char *obj_kind, int nr_slots) argument 635 dynptr_get_spi(struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 640 iter_get_spi(struct bpf_verifier_env *env, struct bpf_reg_state *reg, int nr_slots) argument 689 mark_dynptr_stack_regs(struct bpf_verifier_env *env, struct bpf_reg_state *sreg1, struct bpf_reg_state *sreg2, enum bpf_dynptr_type type) argument 700 mark_dynptr_cb_reg(struct bpf_verifier_env *env, struct bpf_reg_state *reg, enum bpf_dynptr_type type) argument 710 mark_stack_slots_dynptr(struct bpf_verifier_env *env, struct bpf_reg_state *reg, enum bpf_arg_type arg_type, int insn_idx, int clone_ref_obj_id) argument 771 invalidate_dynptr(struct bpf_verifier_env *env, struct bpf_func_state *state, int spi) argument 808 unmark_stack_slots_dynptr(struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 857 mark_reg_invalid(const struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 865 destroy_if_dynptr_stack_slot(struct bpf_verifier_env *env, struct bpf_func_state *state, int spi) argument 921 is_dynptr_reg_valid_uninit(struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 949 is_dynptr_reg_valid_init(struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 978 is_dynptr_type_expected(struct bpf_verifier_env *env, struct bpf_reg_state *reg, enum bpf_arg_type arg_type) argument 1006 mark_stack_slots_iter(struct bpf_verifier_env *env, struct bpf_kfunc_call_arg_meta *meta, struct bpf_reg_state *reg, int insn_idx, struct btf *btf, u32 btf_id, int nr_slots) argument 1050 unmark_stack_slots_iter(struct bpf_verifier_env *env, struct bpf_reg_state *reg, int nr_slots) argument 1081 is_iter_reg_valid_uninit(struct bpf_verifier_env *env, struct bpf_reg_state *reg, int nr_slots) argument 1108 is_iter_reg_valid_init(struct bpf_verifier_env *env, struct bpf_reg_state *reg, struct btf *btf, u32 btf_id, int nr_slots) argument 1190 mark_stack_slot_misc(struct bpf_verifier_env *env, u8 *stype) argument 1302 grow_stack_state(struct bpf_verifier_env *env, struct bpf_func_state *state, int size) argument 1331 acquire_reference_state(struct bpf_verifier_env *env, int insn_idx) argument 1465 state_htab_size(struct bpf_verifier_env *env) argument 1470 explored_state(struct bpf_verifier_env *env, int idx) argument 1649 update_branch_counts(struct bpf_verifier_env *env, struct bpf_verifier_state *st) argument 1674 pop_stack(struct bpf_verifier_env *env, int *prev_insn_idx, int *insn_idx, bool pop_log) argument 1703 push_stack(struct bpf_verifier_env *env, int insn_idx, int prev_insn_idx, bool speculative) argument 1801 __mark_reg_const_zero(const struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 1811 mark_reg_known_zero(struct bpf_verifier_env *env, struct bpf_reg_state *regs, u32 regno) argument 2223 reg_bounds_sanity_check(struct bpf_verifier_env *env, struct bpf_reg_state *reg, const char *ctx) argument 2317 __mark_reg_unknown(const struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 2324 mark_reg_unknown(struct bpf_verifier_env *env, struct bpf_reg_state *regs, u32 regno) argument 2337 __mark_reg_not_init(const struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 2344 mark_reg_not_init(struct bpf_verifier_env *env, struct bpf_reg_state *regs, u32 regno) argument 2357 mark_btf_ld_reg(struct bpf_verifier_env *env, struct bpf_reg_state *regs, u32 regno, enum bpf_reg_type reg_type, struct btf *btf, u32 btf_id, enum bpf_type_flag flag) argument 2376 init_reg_state(struct bpf_verifier_env *env, struct bpf_func_state *state) argument 2401 init_func_state(struct bpf_verifier_env *env, struct bpf_func_state *state, int callsite, int frameno, int subprogno) argument 2414 push_async_cb(struct bpf_verifier_env *env, int insn_idx, int prev_insn_idx, int subprog, bool is_sleepable) argument 2474 find_subprog(struct bpf_verifier_env *env, int off) argument 2486 add_subprog(struct bpf_verifier_env *env, int off) argument 2509 bpf_find_exception_callback_insn_off(struct bpf_verifier_env *env) argument 2647 __find_kfunc_desc_btf(struct bpf_verifier_env *env, s16 offset) argument 2717 find_kfunc_desc_btf(struct bpf_verifier_env *env, s16 offset) argument 2733 add_kfunc_call(struct bpf_verifier_env *env, u32 func_id, s16 offset) argument 2907 add_subprog_and_kfunc(struct bpf_verifier_env *env) argument 2970 check_subprogs(struct bpf_verifier_env *env) argument 3026 mark_reg_read(struct bpf_verifier_env *env, const struct bpf_reg_state *state, struct bpf_reg_state *parent, u8 flag) argument 3074 mark_dynptr_read(struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 3100 mark_iter_read(struct bpf_verifier_env *env, struct bpf_reg_state *reg, int spi, int nr_slots) argument 3123 is_reg64(struct bpf_verifier_env *env, struct bpf_insn *insn, u32 regno, struct bpf_reg_state *reg, enum reg_arg_type t) argument 3233 insn_has_def32(struct bpf_verifier_env *env, struct bpf_insn *insn) argument 3243 mark_insn_zext(struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 3256 __check_reg_arg(struct bpf_verifier_env *env, struct bpf_reg_state *regs, u32 regno, enum reg_arg_type t) argument 3301 check_reg_arg(struct bpf_verifier_env *env, u32 regno, enum reg_arg_type t) argument 3325 mark_jmp_point(struct bpf_verifier_env *env, int idx) argument 3330 is_jmp_point(struct bpf_verifier_env *env, int insn_idx) argument 3336 push_jmp_history(struct bpf_verifier_env *env, struct bpf_verifier_state *cur, int insn_flags) argument 3438 struct bpf_verifier_env *env = bt->env; local 3587 backtrack_insn(struct bpf_verifier_env *env, int idx, int subseq_idx, struct bpf_jmp_history_entry *hist, struct backtrack_state *bt) argument 3917 mark_all_scalars_precise(struct bpf_verifier_env *env, struct bpf_verifier_state *st) argument 3964 mark_all_scalars_imprecise(struct bpf_verifier_env *env, struct bpf_verifier_state *st) argument 4016 mark_precise_scalar_ids(struct bpf_verifier_env *env, struct bpf_verifier_state *st) argument 4166 __mark_chain_precision(struct bpf_verifier_env *env, int regno) argument 4370 mark_chain_precision(struct bpf_verifier_env *env, int regno) argument 4378 mark_chain_precision_batch(struct bpf_verifier_env *env) argument 4438 assign_scalar_id_before_mov(struct bpf_verifier_env *env, struct bpf_reg_state *src_reg) argument 4461 save_register_state(struct bpf_verifier_env *env, struct bpf_func_state *state, int spi, struct bpf_reg_state *reg, int size) argument 4493 check_stack_write_fixed_off(struct bpf_verifier_env *env, struct bpf_func_state *state, int off, int size, int value_regno, int insn_idx) argument 4635 check_stack_write_var_off(struct bpf_verifier_env *env, struct bpf_func_state *state, int ptr_regno, int off, int size, int value_regno, int insn_idx) argument 4752 mark_reg_stack_read(struct bpf_verifier_env *env, struct bpf_func_state *ptr_state, int min_off, int max_off, int dst_regno) argument 4793 check_stack_read_fixed_off(struct bpf_verifier_env *env, struct bpf_func_state *reg_state, int off, int size, int dst_regno) argument 4932 reg_state(struct bpf_verifier_env *env, int regno) argument 4950 check_stack_read_var_off(struct bpf_verifier_env *env, int ptr_regno, int off, int size, int dst_regno) argument 4981 check_stack_read(struct bpf_verifier_env *env, int ptr_regno, int off, int size, int dst_regno) argument 5038 check_stack_write(struct bpf_verifier_env *env, int ptr_regno, int off, int size, int value_regno, int insn_idx) argument 5061 check_map_access_type(struct bpf_verifier_env *env, u32 regno, int off, int size, enum bpf_access_type type) argument 5084 __check_mem_access(struct bpf_verifier_env *env, int regno, int off, int size, u32 mem_size, bool zero_size_allowed) argument 5120 check_mem_region_access(struct bpf_verifier_env *env, u32 regno, int off, int size, u32 mem_size, bool zero_size_allowed) argument 5175 __check_ptr_off_reg(struct bpf_verifier_env *env, const struct bpf_reg_state *reg, int regno, bool fixed_off_ok) argument 5207 check_ptr_off_reg(struct bpf_verifier_env *env, const struct bpf_reg_state *reg, int regno) argument 5213 map_kptr_match_type(struct bpf_verifier_env *env, struct btf_field *kptr_field, struct bpf_reg_state *reg, u32 regno) argument 5289 in_sleepable(struct bpf_verifier_env *env) argument 5298 in_rcu_cs(struct bpf_verifier_env *env) argument 5346 btf_ld_kptr_type(struct bpf_verifier_env *env, struct btf_field *kptr_field) argument 5369 check_map_kptr_access(struct bpf_verifier_env *env, u32 regno, int value_regno, int insn_idx, struct btf_field *kptr_field) argument 5424 check_map_access(struct bpf_verifier_env *env, u32 regno, int off, int size, bool zero_size_allowed, enum bpf_access_src src) argument 5487 may_access_direct_pkt_data(struct bpf_verifier_env *env, const struct bpf_call_arg_meta *meta, enum bpf_access_type t) argument 5529 check_packet_access(struct bpf_verifier_env *env, u32 regno, int off, int size, bool zero_size_allowed) argument 5572 check_ctx_access(struct bpf_verifier_env *env, int insn_idx, int off, int size, enum bpf_access_type t, enum bpf_reg_type *reg_type, struct btf **btf, u32 *btf_id) argument 5608 check_flow_keys_access(struct bpf_verifier_env *env, int off, int size) argument 5620 check_sock_access(struct bpf_verifier_env *env, int insn_idx, u32 regno, int off, int size, enum bpf_access_type t) argument 5665 is_pointer_value(struct bpf_verifier_env *env, int regno) argument 5670 is_ctx_reg(struct bpf_verifier_env *env, int regno) argument 5677 is_sk_reg(struct bpf_verifier_env *env, int regno) argument 5684 is_pkt_reg(struct bpf_verifier_env *env, int regno) argument 5691 is_flow_key_reg(struct bpf_verifier_env *env, int regno) argument 5699 is_arena_reg(struct bpf_verifier_env *env, int regno) argument 5749 check_pkt_ptr_alignment(struct bpf_verifier_env *env, const struct bpf_reg_state *reg, int off, int size, bool strict) argument 5784 check_generic_ptr_alignment(struct bpf_verifier_env *env, const struct bpf_reg_state *reg, const char *pointer_desc, int off, int size, bool strict) argument 5808 check_ptr_alignment(struct bpf_verifier_env *env, const struct bpf_reg_state *reg, int off, int size, bool strict_alignment_once) argument 5863 round_up_stack_depth(struct bpf_verifier_env *env, int stack_depth) argument 5880 check_max_stack_depth_subprog(struct bpf_verifier_env *env, int idx) argument 6018 check_max_stack_depth(struct bpf_verifier_env *env) argument 6035 get_callee_stack_depth(struct bpf_verifier_env *env, const struct bpf_insn *insn, int idx) argument 6050 __check_buffer_access(struct bpf_verifier_env *env, const char *buf_info, const struct bpf_reg_state *reg, int regno, int off, int size) argument 6074 check_tp_buffer_access(struct bpf_verifier_env *env, const struct bpf_reg_state *reg, int regno, int off, int size) argument 6090 check_buffer_access(struct bpf_verifier_env *env, const struct bpf_reg_state *reg, int regno, int off, int size, bool zero_size_allowed, u32 *max_access) argument 6411 type_is_rcu(struct bpf_verifier_env *env, struct bpf_reg_state *reg, const char *field_name, u32 btf_id) argument 6422 type_is_rcu_or_null(struct bpf_verifier_env *env, struct bpf_reg_state *reg, const char *field_name, u32 btf_id) argument 6433 type_is_trusted(struct bpf_verifier_env *env, struct bpf_reg_state *reg, const char *field_name, u32 btf_id) argument 6446 type_is_trusted_or_null(struct bpf_verifier_env *env, struct bpf_reg_state *reg, const char *field_name, u32 btf_id) argument 6456 check_ptr_to_btf_access(struct bpf_verifier_env *env, struct bpf_reg_state *regs, int regno, int off, int size, enum bpf_access_type atype, int value_regno) argument 6606 check_ptr_to_map_access(struct bpf_verifier_env *env, struct bpf_reg_state *regs, int regno, int off, int size, enum bpf_access_type atype, int value_regno) argument 6672 check_stack_slot_within_bounds(struct bpf_verifier_env *env, s64 off, struct bpf_func_state *state, enum bpf_access_type t) argument 6694 check_stack_access_within_bounds( struct bpf_verifier_env *env, int regno, int off, int access_size, enum bpf_access_src src, enum bpf_access_type type) argument 6763 check_mem_access(struct bpf_verifier_env *env, int insn_idx, u32 regno, int off, int bpf_size, enum bpf_access_type t, int value_regno, bool strict_alignment_once, bool is_ldsx) argument 7005 check_atomic(struct bpf_verifier_env *env, int insn_idx, struct bpf_insn *insn) argument 7124 check_stack_range_initialized( struct bpf_verifier_env *env, int regno, int off, int access_size, bool zero_size_allowed, enum bpf_access_src type, struct bpf_call_arg_meta *meta) argument 7280 check_helper_mem_access(struct bpf_verifier_env *env, int regno, int access_size, bool zero_size_allowed, struct bpf_call_arg_meta *meta) argument 7379 check_mem_size_reg(struct bpf_verifier_env *env, struct bpf_reg_state *reg, u32 regno, bool zero_size_allowed, struct bpf_call_arg_meta *meta) argument 7432 check_mem_reg(struct bpf_verifier_env *env, struct bpf_reg_state *reg, u32 regno, u32 mem_size) argument 7464 check_kfunc_mem_size_reg(struct bpf_verifier_env *env, struct bpf_reg_state *reg, u32 regno) argument 7514 process_spin_lock(struct bpf_verifier_env *env, int regno, bool is_lock) argument 7591 process_timer_func(struct bpf_verifier_env *env, int regno, struct bpf_call_arg_meta *meta) argument 7628 process_wq_func(struct bpf_verifier_env *env, int regno, struct bpf_kfunc_call_arg_meta *meta) argument 7645 process_kptr_func(struct bpf_verifier_env *env, int regno, struct bpf_call_arg_meta *meta) argument 7709 process_dynptr_func(struct bpf_verifier_env *env, int regno, int insn_idx, enum bpf_arg_type arg_type, int clone_ref_obj_id) argument 7782 iter_ref_obj_id(struct bpf_verifier_env *env, struct bpf_reg_state *reg, int spi) argument 7817 process_iter_arg(struct bpf_verifier_env *env, int regno, int insn_idx, struct bpf_kfunc_call_arg_meta *meta) argument 7893 find_prev_entry(struct bpf_verifier_env *env, struct bpf_verifier_state *cur, int insn_idx) argument 7920 maybe_widen_reg(struct bpf_verifier_env *env, struct bpf_reg_state *rold, struct bpf_reg_state *rcur, struct bpf_idmap *idmap) argument 7933 widen_imprecise_scalars(struct bpf_verifier_env *env, struct bpf_verifier_state *old, struct bpf_verifier_state *cur) argument 8043 process_iter_next_call(struct bpf_verifier_env *env, int insn_idx, struct bpf_kfunc_call_arg_meta *meta) argument 8126 resolve_map_arg_type(struct bpf_verifier_env *env, const struct bpf_call_arg_meta *meta, enum bpf_arg_type *arg_type) argument 8274 check_reg_type(struct bpf_verifier_env *env, u32 regno, enum bpf_arg_type arg_type, const u32 *arg_btf_id, struct bpf_call_arg_meta *meta) argument 8436 check_func_arg_reg_off(struct bpf_verifier_env *env, const struct bpf_reg_state *reg, int regno, enum bpf_arg_type arg_type) argument 8507 get_dynptr_arg_reg(struct bpf_verifier_env *env, const struct bpf_func_proto *fn, struct bpf_reg_state *regs) argument 8529 dynptr_id(struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 8542 dynptr_ref_obj_id(struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 8555 dynptr_get_type(struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 8573 check_reg_const_str(struct bpf_verifier_env *env, struct bpf_reg_state *reg, u32 regno) argument 8621 check_func_arg(struct bpf_verifier_env *env, u32 arg, struct bpf_call_arg_meta *meta, const struct bpf_func_proto *fn, int insn_idx) argument 8880 may_update_sockmap(struct bpf_verifier_env *env, int func_id) argument 8912 allow_tail_call_in_subprogs(struct bpf_verifier_env *env) argument 8918 check_map_func_compatibility(struct bpf_verifier_env *env, struct bpf_map *map, int func_id) argument 9258 clear_all_pkt_pointers(struct bpf_verifier_env *env) argument 9298 release_reference(struct bpf_verifier_env *env, int ref_obj_id) argument 9317 invalidate_non_owning_refs(struct bpf_verifier_env *env) argument 9328 clear_caller_saved_regs(struct bpf_verifier_env *env, struct bpf_reg_state *regs) argument 9349 setup_func_entry(struct bpf_verifier_env *env, int subprog, int callsite, set_callee_state_fn set_callee_state_cb, struct bpf_verifier_state *state) argument 9400 btf_check_func_arg_match(struct bpf_verifier_env *env, int subprog, const struct btf *btf, struct bpf_reg_state *regs) argument 9492 btf_check_subprog_call(struct bpf_verifier_env *env, int subprog, struct bpf_reg_state *regs) argument 9520 push_callback_call(struct bpf_verifier_env *env, struct bpf_insn *insn, int insn_idx, int subprog, set_callee_state_fn set_callee_state_cb) argument 9589 check_func_call(struct bpf_verifier_env *env, struct bpf_insn *insn, int *insn_idx) argument 9666 map_set_for_each_callback_args(struct bpf_verifier_env *env, struct bpf_func_state *caller, struct bpf_func_state *callee) argument 9693 set_callee_state(struct bpf_verifier_env *env, struct bpf_func_state *caller, struct bpf_func_state *callee, int insn_idx) argument 9707 set_map_elem_callback_state(struct bpf_verifier_env *env, struct bpf_func_state *caller, struct bpf_func_state *callee, int insn_idx) argument 9733 set_loop_callback_state(struct bpf_verifier_env *env, struct bpf_func_state *caller, struct bpf_func_state *callee, int insn_idx) argument 9755 set_timer_callback_state(struct bpf_verifier_env *env, struct bpf_func_state *caller, struct bpf_func_state *callee, int insn_idx) argument 9785 set_find_vma_callback_state(struct bpf_verifier_env *env, struct bpf_func_state *caller, struct bpf_func_state *callee, int insn_idx) argument 9813 set_user_ringbuf_callback_state(struct bpf_verifier_env *env, struct bpf_func_state *caller, struct bpf_func_state *callee, int insn_idx) argument 9836 set_rbtree_add_callback_state(struct bpf_verifier_env *env, struct bpf_func_state *caller, struct bpf_func_state *callee, int insn_idx) argument 9874 in_rbtree_lock_required_cb(struct bpf_verifier_env *env) argument 9898 prepare_func_exit(struct bpf_verifier_env *env, int *insn_idx) argument 10001 do_refine_retval_range(struct bpf_verifier_env *env, struct bpf_reg_state *regs, int ret_type, int func_id, struct bpf_call_arg_meta *meta) argument 10040 record_func_map(struct bpf_verifier_env *env, struct bpf_call_arg_meta *meta, int func_id, int insn_idx) argument 10086 record_func_key(struct bpf_verifier_env *env, struct bpf_call_arg_meta *meta, int func_id, int insn_idx) argument 10122 check_reference_leak(struct bpf_verifier_env *env, bool exception_exit) argument 10141 check_bpf_snprintf_call(struct bpf_verifier_env *env, struct bpf_reg_state *regs) argument 10179 check_get_func_ip(struct bpf_verifier_env *env) argument 10200 cur_aux(struct bpf_verifier_env *env) argument 10205 loop_flag_is_zero(struct bpf_verifier_env *env) argument 10217 update_loop_inline_state(struct bpf_verifier_env *env, u32 subprogno) argument 10235 check_helper_call(struct bpf_verifier_env *env, struct bpf_insn *insn, int *insn_idx_p) argument 10757 mark_btf_func_reg_size(struct bpf_verifier_env *env, u32 regno, size_t reg_size) argument 10967 is_kfunc_arg_callback(struct bpf_verifier_env *env, const struct btf *btf, const struct btf_param *arg) argument 10980 __btf_type_is_scalar_struct(struct bpf_verifier_env *env, const struct btf *btf, const struct btf_type *t, int rec) argument 11160 get_kfunc_ptr_arg_type(struct bpf_verifier_env *env, struct bpf_kfunc_call_arg_meta *meta, const struct btf_type *t, const struct btf_type *ref_t, const char *ref_tname, const struct btf_param *args, int argno, int nargs) argument 11249 process_kf_arg_ptr_to_btf_id(struct bpf_verifier_env *env, struct bpf_reg_state *reg, const struct btf_type *ref_t, const char *ref_tname, u32 ref_id, struct bpf_kfunc_call_arg_meta *meta, int argno) argument 11312 ref_set_non_owning(struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 11334 ref_convert_owning_non_owning(struct bpf_verifier_env *env, u32 ref_obj_id) argument 11412 check_reg_allocation_locked(struct bpf_verifier_env *env, struct bpf_reg_state *reg) argument 11493 check_kfunc_is_graph_root_api(struct bpf_verifier_env *env, enum btf_field_type head_field_type, u32 kfunc_btf_id) argument 11518 check_kfunc_is_graph_node_api(struct bpf_verifier_env *env, enum btf_field_type node_field_type, u32 kfunc_btf_id) argument 11546 __process_kf_arg_ptr_to_graph_root(struct bpf_verifier_env *env, struct bpf_reg_state *reg, u32 regno, struct bpf_kfunc_call_arg_meta *meta, enum btf_field_type head_field_type, struct btf_field **head_field) argument 11596 process_kf_arg_ptr_to_list_head(struct bpf_verifier_env *env, struct bpf_reg_state *reg, u32 regno, struct bpf_kfunc_call_arg_meta *meta) argument 11604 process_kf_arg_ptr_to_rbtree_root(struct bpf_verifier_env *env, struct bpf_reg_state *reg, u32 regno, struct bpf_kfunc_call_arg_meta *meta) argument 11613 __process_kf_arg_ptr_to_graph_node(struct bpf_verifier_env *env, struct bpf_reg_state *reg, u32 regno, struct bpf_kfunc_call_arg_meta *meta, enum btf_field_type head_field_type, enum btf_field_type node_field_type, struct btf_field **node_field) argument 11677 process_kf_arg_ptr_to_list_node(struct bpf_verifier_env *env, struct bpf_reg_state *reg, u32 regno, struct bpf_kfunc_call_arg_meta *meta) argument 11686 process_kf_arg_ptr_to_rbtree_node(struct bpf_verifier_env *env, struct bpf_reg_state *reg, u32 regno, struct bpf_kfunc_call_arg_meta *meta) argument 11701 check_css_task_iter_allowlist(struct bpf_verifier_env *env) argument 11717 check_kfunc_args(struct bpf_verifier_env *env, struct bpf_kfunc_call_arg_meta *meta, int insn_idx) argument 12200 fetch_kfunc_meta(struct bpf_verifier_env *env, struct bpf_insn *insn, struct bpf_kfunc_call_arg_meta *meta, const char **kfunc_name) argument 12244 check_kfunc_call(struct bpf_verifier_env *env, struct bpf_insn *insn, int *insn_idx_p) argument 12733 check_reg_sane_offset(struct bpf_verifier_env *env, const struct bpf_reg_state *reg, enum bpf_reg_type type) argument 12807 can_skip_alu_sanitation(const struct bpf_verifier_env *env, const struct bpf_insn *insn) argument 12830 sanitize_val_alu(struct bpf_verifier_env *env, struct bpf_insn *insn) argument 12852 sanitize_speculative_path(struct bpf_verifier_env *env, const struct bpf_insn *insn, u32 next_idx, u32 curr_idx) argument 12872 sanitize_ptr_alu(struct bpf_verifier_env *env, struct bpf_insn *insn, const struct bpf_reg_state *ptr_reg, const struct bpf_reg_state *off_reg, struct bpf_reg_state *dst_reg, struct bpf_sanitize_info *info, const bool commit_window) argument 12968 sanitize_mark_insn_seen(struct bpf_verifier_env *env) argument 12981 sanitize_err(struct bpf_verifier_env *env, const struct bpf_insn *insn, int reason, const struct bpf_reg_state *off_reg, const struct bpf_reg_state *dst_reg) argument 13030 check_stack_access_for_ptr_arithmetic( struct bpf_verifier_env *env, int regno, const struct bpf_reg_state *reg, int off) argument 13054 sanitize_check_bounds(struct bpf_verifier_env *env, const struct bpf_insn *insn, const struct bpf_reg_state *dst_reg) argument 13091 adjust_ptr_min_max_vals(struct bpf_verifier_env *env, struct bpf_insn *insn, const struct bpf_reg_state *ptr_reg, const struct bpf_reg_state *off_reg) argument 13925 adjust_scalar_min_max_vals(struct bpf_verifier_env *env, struct bpf_insn *insn, struct bpf_reg_state *dst_reg, struct bpf_reg_state src_reg) argument 14022 adjust_reg_min_max_vals(struct bpf_verifier_env *env, struct bpf_insn *insn) argument 14123 check_alu_op(struct bpf_verifier_env *env, struct bpf_insn *insn) argument 14880 reg_set_min_max(struct bpf_verifier_env *env, struct bpf_reg_state *true_reg1, struct bpf_reg_state *true_reg2, struct bpf_reg_state *false_reg1, struct bpf_reg_state *false_reg2, u8 opcode, bool is_jmp32) argument 15100 check_cond_jmp_op(struct bpf_verifier_env *env, struct bpf_insn *insn, int *insn_idx) argument 15319 check_ld_imm(struct bpf_verifier_env *env, struct bpf_insn *insn) argument 15442 check_ld_abs(struct bpf_verifier_env *env, struct bpf_insn *insn) argument 15529 check_return_code(struct bpf_verifier_env *env, int regno, const char *reg_name) argument 15736 mark_prune_point(struct bpf_verifier_env *env, int idx) argument 15741 is_prune_point(struct bpf_verifier_env *env, int insn_idx) argument 15746 mark_force_checkpoint(struct bpf_verifier_env *env, int idx) argument 15751 is_force_checkpoint(struct bpf_verifier_env *env, int insn_idx) argument 15756 mark_calls_callback(struct bpf_verifier_env *env, int idx) argument 15761 calls_callback(struct bpf_verifier_env *env, int insn_idx) argument 15776 push_insn(int t, int w, int e, struct bpf_verifier_env *env) argument 15824 visit_func_call_insn(int t, struct bpf_insn *insns, struct bpf_verifier_env *env, bool visit_callee) argument 15851 visit_insn(int t, struct bpf_verifier_env *env) argument 15951 check_cfg(struct bpf_verifier_env *env) argument 16035 check_abnormal_return(struct bpf_verifier_env *env) argument 16056 check_btf_func_early(struct bpf_verifier_env *env, const union bpf_attr *attr, bpfptr_t uattr) argument 16158 check_btf_func(struct bpf_verifier_env *env, const union bpf_attr *attr, bpfptr_t uattr) argument 16233 adjust_btf_func(struct bpf_verifier_env *env) argument 16249 check_btf_line(struct bpf_verifier_env *env, const union bpf_attr *attr, bpfptr_t uattr) argument 16377 check_core_relo(struct bpf_verifier_env *env, const union bpf_attr *attr, bpfptr_t uattr) argument 16446 check_btf_info_early(struct bpf_verifier_env *env, const union bpf_attr *attr, bpfptr_t uattr) argument 16474 check_btf_info(struct bpf_verifier_env *env, const union bpf_attr *attr, bpfptr_t uattr) argument 16566 clean_func_state(struct bpf_verifier_env *env, struct bpf_func_state *st) argument 16595 clean_verifier_state(struct bpf_verifier_env *env, struct bpf_verifier_state *st) argument 16640 clean_live_states(struct bpf_verifier_env *env, int insn, struct bpf_verifier_state *cur) argument 16674 regsafe(struct bpf_verifier_env *env, struct bpf_reg_state *rold, struct bpf_reg_state *rcur, struct bpf_idmap *idmap, enum exact_level exact) argument 16808 is_stack_all_misc(struct bpf_verifier_env *env, struct bpf_stack_state *stack) argument 16823 scalar_reg_for_stack(struct bpf_verifier_env *env, struct bpf_stack_state *stack) argument 16835 stacksafe(struct bpf_verifier_env *env, struct bpf_func_state *old, struct bpf_func_state *cur, struct bpf_idmap *idmap, enum exact_level exact) argument 17001 func_states_equal(struct bpf_verifier_env *env, struct bpf_func_state *old, struct bpf_func_state *cur, enum exact_level exact) argument 17023 reset_idmap_scratch(struct bpf_verifier_env *env) argument 17029 states_equal(struct bpf_verifier_env *env, struct bpf_verifier_state *old, struct bpf_verifier_state *cur, enum exact_level exact) argument 17084 propagate_liveness_reg(struct bpf_verifier_env *env, struct bpf_reg_state *reg, struct bpf_reg_state *parent_reg) argument 17117 propagate_liveness(struct bpf_verifier_env *env, const struct bpf_verifier_state *vstate, struct bpf_verifier_state *vparent) argument 17164 propagate_precision(struct bpf_verifier_env *env, const struct bpf_verifier_state *old) argument 17238 is_iter_next_insn(struct bpf_verifier_env *env, int insn_idx) argument 17325 is_state_visited(struct bpf_verifier_env *env, int insn_idx) argument 17702 save_aux_ptr_type(struct bpf_verifier_env *env, enum bpf_reg_type type, bool allow_trust_mismatch) argument 17740 do_check(struct bpf_verifier_env *env) argument 18138 check_pseudo_btf_id(struct bpf_verifier_env *env, struct bpf_insn *insn, struct bpf_insn_aux_data *aux) argument 18287 check_map_prog_compatibility(struct bpf_verifier_env *env, struct bpf_map *map, struct bpf_prog *prog) argument 18381 resolve_pseudo_ldimm64(struct bpf_verifier_env *env) argument 18597 release_maps(struct bpf_verifier_env *env) argument 18604 release_btfs(struct bpf_verifier_env *env) argument 18611 convert_pseudo_ld_imm64(struct bpf_verifier_env *env) argument 18630 adjust_insn_aux_data(struct bpf_verifier_env *env, struct bpf_insn_aux_data *new_data, struct bpf_prog *new_prog, u32 off, u32 cnt) argument 18662 adjust_subprog_starts(struct bpf_verifier_env *env, u32 off, u32 len) argument 18690 bpf_patch_insn_data(struct bpf_verifier_env *env, u32 off, const struct bpf_insn *patch, u32 len) argument 18718 adjust_subprog_starts_after_remove(struct bpf_verifier_env *env, u32 off, u32 cnt) argument 18774 bpf_adj_linfo_after_remove(struct bpf_verifier_env *env, u32 off, u32 cnt) argument 18838 verifier_remove_insns(struct bpf_verifier_env *env, u32 off, u32 cnt) argument 18876 sanitize_dead_code(struct bpf_verifier_env *env) argument 18906 opt_hard_wire_dead_code_branches(struct bpf_verifier_env *env) argument 18932 opt_remove_dead_code(struct bpf_verifier_env *env) argument 18956 opt_remove_nops(struct bpf_verifier_env *env) argument 18977 opt_subreg_zext_lo32_rnd_hi32(struct bpf_verifier_env *env, const union bpf_attr *attr) argument 19081 convert_ctx_accesses(struct bpf_verifier_env *env) argument 19294 jit_subprogs(struct bpf_verifier_env *env) argument 19554 fixup_call_args(struct bpf_verifier_env *env) argument 19606 specialize_kfunc(struct bpf_verifier_env *env, u32 func_id, u16 offset, unsigned long *addr) argument 19657 fixup_kfunc_call(struct bpf_verifier_env *env, struct bpf_insn *insn, struct bpf_insn *insn_buf, int insn_idx, int *cnt) argument 19761 add_hidden_subprog(struct bpf_verifier_env *env, struct bpf_insn *patch, int len) argument 19790 do_misc_fixups(struct bpf_verifier_env *env) argument 20558 inline_bpf_loop(struct bpf_verifier_env *env, int position, s32 stack_base, u32 callback_subprogno, u32 *cnt) argument 20649 optimize_bpf_loop(struct bpf_verifier_env *env) argument 20694 free_states(struct bpf_verifier_env *env) argument 20724 do_check_common(struct bpf_verifier_env *env, int subprog) argument 20871 do_check_subprogs(struct bpf_verifier_env *env) argument 20921 do_check_main(struct bpf_verifier_env *env) argument 20933 print_verification_stats(struct bpf_verifier_env *env) argument 20957 check_struct_ops_btf_id(struct bpf_verifier_env *env) argument 21387 check_attach_btf_id(struct bpf_verifier_env *env) argument 21485 struct bpf_verifier_env *env; local [all...] |