Lines Matching refs:value_regno
5250 int off, int size, int value_regno, in check_stack_write_fixed_off() argument
5271 if (value_regno >= 0) in check_stack_write_fixed_off()
5272 reg = &cur->regs[value_regno]; in check_stack_write_fixed_off()
5357 err = mark_chain_precision(env, value_regno); in check_stack_write_fixed_off()
5397 int value_regno, int insn_idx) in check_stack_write_var_off() argument
5414 if (value_regno >= 0) in check_stack_write_var_off()
5415 value_reg = &cur->regs[value_regno]; in check_stack_write_var_off()
5496 err = mark_chain_precision(env, value_regno); in check_stack_write_var_off()
5810 int value_regno, int insn_idx) in check_stack_write() argument
5819 value_regno, insn_idx); in check_stack_write()
5826 value_regno, insn_idx); in check_stack_write()
6159 int value_regno, int insn_idx, in check_map_kptr_access() argument
6194 return mark_uptr_ld_reg(env, value_regno, kptr_field); in check_map_kptr_access()
6199 ret = mark_btf_ld_reg(env, cur_regs(env), value_regno, PTR_TO_BTF_ID, in check_map_kptr_access()
6205 val_reg = reg_state(env, value_regno); in check_map_kptr_access()
6207 map_kptr_match_type(env, kptr_field, val_reg, value_regno)) in check_map_kptr_access()
7383 int value_regno) in check_ptr_to_btf_access() argument
7523 if (atype == BPF_READ && value_regno >= 0) { in check_ptr_to_btf_access()
7524 ret = mark_btf_ld_reg(env, regs, value_regno, ret, reg->btf, btf_id, flag); in check_ptr_to_btf_access()
7536 int value_regno) in check_ptr_to_map_access() argument
7589 if (value_regno >= 0) { in check_ptr_to_map_access()
7590 ret = mark_btf_ld_reg(env, regs, value_regno, ret, btf_vmlinux, btf_id, flag); in check_ptr_to_map_access()
7704 int value_regno, bool strict_alignment_once, bool is_ldsx) in check_mem_access() argument
7732 if (value_regno >= 0) in check_mem_access()
7733 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
7737 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
7738 is_pointer_value(env, value_regno)) { in check_mem_access()
7739 verbose(env, "R%d leaks addr into map\n", value_regno); in check_mem_access()
7752 err = check_map_kptr_access(env, regno, value_regno, insn_idx, kptr_field); in check_mem_access()
7753 } else if (t == BPF_READ && value_regno >= 0) { in check_mem_access()
7772 regs[value_regno].type = SCALAR_VALUE; in check_mem_access()
7773 __mark_reg_known(®s[value_regno], val); in check_mem_access()
7780 copy_register_state(®s[value_regno], reg); in check_mem_access()
7781 regs[value_regno].type = PTR_TO_INSN; in check_mem_access()
7783 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
7802 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
7803 is_pointer_value(env, value_regno)) { in check_mem_access()
7804 verbose(env, "R%d leaks addr into mem\n", value_regno); in check_mem_access()
7815 if (!err && value_regno >= 0 && (t == BPF_READ || rdonly_mem)) in check_mem_access()
7816 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
7825 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
7826 is_pointer_value(env, value_regno)) { in check_mem_access()
7827 verbose(env, "R%d leaks addr into ctx\n", value_regno); in check_mem_access()
7838 if (!err && t == BPF_READ && value_regno >= 0) { in check_mem_access()
7845 err = __mark_reg_s32_range(env, regs, value_regno, in check_mem_access()
7850 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
7854 value_regno); in check_mem_access()
7856 regs[value_regno].id = ++env->id_gen; in check_mem_access()
7862 regs[value_regno].subreg_def = DEF_NOT_SUBREG; in check_mem_access()
7864 regs[value_regno].btf = info.btf; in check_mem_access()
7865 regs[value_regno].btf_id = info.btf_id; in check_mem_access()
7866 regs[value_regno].ref_obj_id = info.ref_obj_id; in check_mem_access()
7869 regs[value_regno].type = info.reg_type; in check_mem_access()
7880 value_regno); in check_mem_access()
7883 value_regno, insn_idx); in check_mem_access()
7889 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
7890 is_pointer_value(env, value_regno)) { in check_mem_access()
7892 value_regno); in check_mem_access()
7896 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
7897 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
7899 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
7900 is_pointer_value(env, value_regno)) { in check_mem_access()
7902 value_regno); in check_mem_access()
7907 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
7908 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
7916 if (!err && value_regno >= 0) in check_mem_access()
7917 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
7920 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
7921 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
7925 value_regno); in check_mem_access()
7928 value_regno); in check_mem_access()
7948 if (!err && value_regno >= 0 && (rdonly_mem || t == BPF_READ)) in check_mem_access()
7949 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
7951 if (t == BPF_READ && value_regno >= 0) in check_mem_access()
7952 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
7959 if (!err && size < BPF_REG_SIZE && value_regno >= 0 && t == BPF_READ && in check_mem_access()
7960 regs[value_regno].type == SCALAR_VALUE) { in check_mem_access()
7963 coerce_reg_to_size(®s[value_regno], size); in check_mem_access()
7965 coerce_reg_to_size_sx(®s[value_regno], size); in check_mem_access()