Lines Matching refs:value_regno
3027 int off, int size, int value_regno, in check_stack_write_fixed_off() argument
3049 if (value_regno >= 0) in check_stack_write_fixed_off()
3050 reg = &cur->regs[value_regno]; in check_stack_write_fixed_off()
3075 err = mark_chain_precision(env, value_regno); in check_stack_write_fixed_off()
3116 err = mark_chain_precision(env, value_regno); in check_stack_write_fixed_off()
3153 int value_regno, int insn_idx) in check_stack_write_var_off() argument
3169 if (value_regno >= 0) in check_stack_write_var_off()
3170 value_reg = &cur->regs[value_regno]; in check_stack_write_var_off()
3229 err = mark_chain_precision(env, value_regno); in check_stack_write_var_off()
3512 int value_regno, int insn_idx) in check_stack_write() argument
3521 value_regno, insn_idx); in check_stack_write()
3528 value_regno, insn_idx); in check_stack_write()
3758 int value_regno, int insn_idx, in check_map_kptr_access() argument
3786 val_reg = reg_state(env, value_regno); in check_map_kptr_access()
3790 mark_btf_ld_reg(env, cur_regs(env), value_regno, PTR_TO_BTF_ID, off_desc->kptr.btf, in check_map_kptr_access()
3795 val_reg = reg_state(env, value_regno); in check_map_kptr_access()
3797 map_kptr_match_type(env, off_desc, val_reg, value_regno)) in check_map_kptr_access()
4505 int value_regno) in check_ptr_to_btf_access() argument
4566 if (atype == BPF_READ && value_regno >= 0) in check_ptr_to_btf_access()
4567 mark_btf_ld_reg(env, regs, value_regno, ret, reg->btf, btf_id, flag); in check_ptr_to_btf_access()
4576 int value_regno) in check_ptr_to_map_access() argument
4622 if (value_regno >= 0) in check_ptr_to_map_access()
4623 mark_btf_ld_reg(env, regs, value_regno, ret, btf_vmlinux, btf_id, flag); in check_ptr_to_map_access()
4722 int value_regno, bool strict_alignment_once) in check_mem_access() argument
4751 if (value_regno >= 0) in check_mem_access()
4752 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
4756 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
4757 is_pointer_value(env, value_regno)) { in check_mem_access()
4758 verbose(env, "R%d leaks addr into map\n", value_regno); in check_mem_access()
4771 err = check_map_kptr_access(env, regno, value_regno, insn_idx, in check_mem_access()
4773 } else if (t == BPF_READ && value_regno >= 0) { in check_mem_access()
4788 regs[value_regno].type = SCALAR_VALUE; in check_mem_access()
4789 __mark_reg_known(®s[value_regno], val); in check_mem_access()
4791 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
4809 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
4810 is_pointer_value(env, value_regno)) { in check_mem_access()
4811 verbose(env, "R%d leaks addr into mem\n", value_regno); in check_mem_access()
4817 if (!err && value_regno >= 0 && (t == BPF_READ || rdonly_mem)) in check_mem_access()
4818 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
4824 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
4825 is_pointer_value(env, value_regno)) { in check_mem_access()
4826 verbose(env, "R%d leaks addr into ctx\n", value_regno); in check_mem_access()
4838 if (!err && t == BPF_READ && value_regno >= 0) { in check_mem_access()
4844 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
4847 value_regno); in check_mem_access()
4849 regs[value_regno].id = ++env->id_gen; in check_mem_access()
4855 regs[value_regno].subreg_def = DEF_NOT_SUBREG; in check_mem_access()
4857 regs[value_regno].btf = btf; in check_mem_access()
4858 regs[value_regno].btf_id = btf_id; in check_mem_access()
4861 regs[value_regno].type = reg_type; in check_mem_access()
4877 value_regno); in check_mem_access()
4880 value_regno, insn_idx); in check_mem_access()
4886 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
4887 is_pointer_value(env, value_regno)) { in check_mem_access()
4889 value_regno); in check_mem_access()
4893 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
4894 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
4896 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
4897 is_pointer_value(env, value_regno)) { in check_mem_access()
4899 value_regno); in check_mem_access()
4904 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
4905 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
4913 if (!err && value_regno >= 0) in check_mem_access()
4914 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
4917 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
4918 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
4922 value_regno); in check_mem_access()
4925 value_regno); in check_mem_access()
4944 if (!err && value_regno >= 0 && (rdonly_mem || t == BPF_READ)) in check_mem_access()
4945 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
4952 if (!err && size < BPF_REG_SIZE && value_regno >= 0 && t == BPF_READ && in check_mem_access()
4953 regs[value_regno].type == SCALAR_VALUE) { in check_mem_access()
4955 coerce_reg_to_size(®s[value_regno], size); in check_mem_access()