Lines Matching refs:value_regno
4294 int off, int size, int value_regno, in check_stack_write_fixed_off() argument
4317 if (value_regno >= 0) in check_stack_write_fixed_off()
4318 reg = &cur->regs[value_regno]; in check_stack_write_fixed_off()
4349 err = mark_chain_precision(env, value_regno); in check_stack_write_fixed_off()
4401 err = mark_chain_precision(env, value_regno); in check_stack_write_fixed_off()
4438 int value_regno, int insn_idx) in check_stack_write_var_off() argument
4455 if (value_regno >= 0) in check_stack_write_var_off()
4456 value_reg = &cur->regs[value_regno]; in check_stack_write_var_off()
4527 err = mark_chain_precision(env, value_regno); in check_stack_write_var_off()
4813 int value_regno, int insn_idx) in check_stack_write() argument
4822 value_regno, insn_idx); in check_stack_write()
4829 value_regno, insn_idx); in check_stack_write()
5093 int value_regno, int insn_idx, in check_map_kptr_access() argument
5121 val_reg = reg_state(env, value_regno); in check_map_kptr_access()
5125 mark_btf_ld_reg(env, cur_regs(env), value_regno, PTR_TO_BTF_ID, kptr_field->kptr.btf, in check_map_kptr_access()
5133 val_reg = reg_state(env, value_regno); in check_map_kptr_access()
5135 map_kptr_match_type(env, kptr_field, val_reg, value_regno)) in check_map_kptr_access()
6141 int value_regno) in check_ptr_to_btf_access() argument
6279 if (atype == BPF_READ && value_regno >= 0) in check_ptr_to_btf_access()
6280 mark_btf_ld_reg(env, regs, value_regno, ret, reg->btf, btf_id, flag); in check_ptr_to_btf_access()
6289 int value_regno) in check_ptr_to_map_access() argument
6339 if (value_regno >= 0) in check_ptr_to_map_access()
6340 mark_btf_ld_reg(env, regs, value_regno, ret, btf_vmlinux, btf_id, flag); in check_ptr_to_map_access()
6439 int value_regno, bool strict_alignment_once, bool is_ldsx) in check_mem_access() argument
6468 if (value_regno >= 0) in check_mem_access()
6469 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
6473 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
6474 is_pointer_value(env, value_regno)) { in check_mem_access()
6475 verbose(env, "R%d leaks addr into map\n", value_regno); in check_mem_access()
6488 err = check_map_kptr_access(env, regno, value_regno, insn_idx, kptr_field); in check_mem_access()
6489 } else if (t == BPF_READ && value_regno >= 0) { in check_mem_access()
6504 regs[value_regno].type = SCALAR_VALUE; in check_mem_access()
6505 __mark_reg_known(®s[value_regno], val); in check_mem_access()
6507 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
6525 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
6526 is_pointer_value(env, value_regno)) { in check_mem_access()
6527 verbose(env, "R%d leaks addr into mem\n", value_regno); in check_mem_access()
6533 if (!err && value_regno >= 0 && (t == BPF_READ || rdonly_mem)) in check_mem_access()
6534 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
6540 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
6541 is_pointer_value(env, value_regno)) { in check_mem_access()
6542 verbose(env, "R%d leaks addr into ctx\n", value_regno); in check_mem_access()
6554 if (!err && t == BPF_READ && value_regno >= 0) { in check_mem_access()
6560 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
6563 value_regno); in check_mem_access()
6565 regs[value_regno].id = ++env->id_gen; in check_mem_access()
6571 regs[value_regno].subreg_def = DEF_NOT_SUBREG; in check_mem_access()
6573 regs[value_regno].btf = btf; in check_mem_access()
6574 regs[value_regno].btf_id = btf_id; in check_mem_access()
6577 regs[value_regno].type = reg_type; in check_mem_access()
6593 value_regno); in check_mem_access()
6596 value_regno, insn_idx); in check_mem_access()
6602 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
6603 is_pointer_value(env, value_regno)) { in check_mem_access()
6605 value_regno); in check_mem_access()
6609 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
6610 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
6612 if (t == BPF_WRITE && value_regno >= 0 && in check_mem_access()
6613 is_pointer_value(env, value_regno)) { in check_mem_access()
6615 value_regno); in check_mem_access()
6620 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
6621 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
6629 if (!err && value_regno >= 0) in check_mem_access()
6630 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
6633 if (!err && t == BPF_READ && value_regno >= 0) in check_mem_access()
6634 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
6638 value_regno); in check_mem_access()
6641 value_regno); in check_mem_access()
6660 if (!err && value_regno >= 0 && (rdonly_mem || t == BPF_READ)) in check_mem_access()
6661 mark_reg_unknown(env, regs, value_regno); in check_mem_access()
6668 if (!err && size < BPF_REG_SIZE && value_regno >= 0 && t == BPF_READ && in check_mem_access()
6669 regs[value_regno].type == SCALAR_VALUE) { in check_mem_access()
6672 coerce_reg_to_size(®s[value_regno], size); in check_mem_access()
6674 coerce_reg_to_size_sx(®s[value_regno], size); in check_mem_access()