Lines Matching refs:var_off
415 if (!tnum_is_unknown(reg->var_off)) { in verbose_invalid_scalar()
416 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in verbose_invalid_scalar()
635 tnum_is_const(reg->var_off)) { in print_verifier_state()
637 verbose(env, "%lld", reg->var_off.value + reg->off); in print_verifier_state()
657 if (tnum_is_const(reg->var_off)) { in print_verifier_state()
662 verbose(env, ",imm=%llx", reg->var_off.value); in print_verifier_state()
678 if (!tnum_is_unknown(reg->var_off)) { in print_verifier_state()
681 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in print_verifier_state()
726 if (t == SCALAR_VALUE && tnum_is_const(reg->var_off)) in print_verifier_state()
727 verbose(env, "%lld", reg->var_off.value + reg->off); in print_verifier_state()
1075 reg->var_off = tnum_const(imm); in ___mark_reg_known()
1094 offsetof(struct bpf_reg_state, var_off) - sizeof(reg->type)); in __mark_reg_known()
1100 reg->var_off = tnum_const_subreg(reg->var_off, imm); in __mark_reg32_known()
1205 tnum_equals_const(reg->var_off, 0); in reg_is_init_pkt_pointer()
1240 struct tnum var32_off = tnum_subreg(reg->var_off); in __update_reg32_bounds()
1257 reg->var_off.value | (reg->var_off.mask & S64_MIN)); in __update_reg64_bounds()
1260 reg->var_off.value | (reg->var_off.mask & S64_MAX)); in __update_reg64_bounds()
1261 reg->umin_value = max(reg->umin_value, reg->var_off.value); in __update_reg64_bounds()
1263 reg->var_off.value | reg->var_off.mask); in __update_reg64_bounds()
1350 struct tnum var64_off = tnum_intersect(reg->var_off, in __reg_bound_offset()
1353 struct tnum var32_off = tnum_intersect(tnum_subreg(reg->var_off), in __reg_bound_offset()
1357 reg->var_off = tnum_or(tnum_clear_subreg(var64_off), var32_off); in __reg_bound_offset()
1384 if (tnum_equals_const(tnum_clear_subreg(reg->var_off), 0)) { in __reg_combine_32_into_64()
1447 memset(reg, 0, offsetof(struct bpf_reg_state, var_off)); in __mark_reg_unknown()
1449 reg->var_off = tnum_unknown; in __mark_reg_unknown()
1903 parent->var_off.value, parent->off); in mark_reg_read()
2597 return reg->type == SCALAR_VALUE && tnum_equals_const(reg->var_off, 0); in register_is_null()
2602 return reg->type == SCALAR_VALUE && tnum_is_const(reg->var_off); in register_is_const()
2607 return tnum_is_unknown(reg->var_off) && in __is_scalar_unbounded()
3055 bool var_off = !tnum_is_const(reg->var_off); in check_stack_read() local
3061 if (dst_regno < 0 && var_off) { in check_stack_read()
3064 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_read()
3073 if (!env->bypass_spec_v1 && var_off) { in check_stack_read()
3076 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_read()
3082 if (!var_off) { in check_stack_read()
3083 off += reg->var_off.value; in check_stack_read()
3116 if (tnum_is_const(reg->var_off)) { in check_stack_write()
3117 off += reg->var_off.value; in check_stack_write()
3529 reg_off = tnum_add(reg->var_off, tnum_const(ip_align + reg->off + off)); in check_pkt_ptr_alignment()
3533 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_pkt_ptr_alignment()
3554 reg_off = tnum_add(reg->var_off, tnum_const(reg->off + off)); in check_generic_ptr_alignment()
3558 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_generic_ptr_alignment()
3777 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in check_ctx_reg()
3780 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_ctx_reg()
3799 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in __check_buffer_access()
3802 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in __check_buffer_access()
3850 reg->var_off = tnum_subreg(reg->var_off); in zext_32_to_64()
3862 reg->var_off = tnum_cast(reg->var_off, size); in coerce_reg_to_size()
3938 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in check_ptr_to_btf_access()
3941 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_ptr_to_btf_access()
4072 if (tnum_is_const(reg->var_off)) { in check_stack_access_within_bounds()
4073 min_off = reg->var_off.value + off; in check_stack_access_within_bounds()
4097 if (tnum_is_const(reg->var_off)) { in check_stack_access_within_bounds()
4103 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_access_within_bounds()
4164 if (tnum_is_const(reg->var_off) && in check_mem_access()
4167 int map_off = off + reg->var_off.value; in check_mem_access()
4464 if (tnum_is_const(reg->var_off)) { in check_stack_range_initialized()
4465 min_off = max_off = reg->var_off.value + off; in check_stack_range_initialized()
4475 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_range_initialized()
4533 if (tnum_is_const(reg->var_off)) { in check_stack_range_initialized()
4539 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_range_initialized()
4657 bool is_const = tnum_is_const(reg->var_off); in process_spin_lock()
4659 u64 val = reg->var_off.value; in process_spin_lock()
4718 bool is_const = tnum_is_const(reg->var_off); in process_timer_func()
4720 u64 val = reg->var_off.value; in process_timer_func()
4977 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in check_reg_type()
5156 if (!tnum_is_const(reg->var_off)) in check_func_arg()
5189 if (!tnum_is_const(reg->var_off)) { in check_func_arg()
5194 meta->mem_size = reg->var_off.value; in check_func_arg()
5213 if (!tnum_is_const(reg->var_off)) { in check_func_arg()
5228 map_off = reg->off + reg->var_off.value; in check_func_arg()
5963 if (!tnum_in(range, r0->var_off)) { in prepare_func_exit()
6079 if (!register_is_const(reg) || !tnum_in(range, reg->var_off)) { in record_func_key()
6088 val = reg->var_off.value; in record_func_key()
6120 if (data_len_reg->var_off.value % 8) in check_bpf_snprintf_call()
6122 num_args = data_len_reg->var_off.value / 8; in check_bpf_snprintf_call()
6127 fmt_map_off = fmt_reg->off + fmt_reg->var_off.value; in check_bpf_snprintf_call()
6594 bool known = tnum_is_const(reg->var_off); in check_reg_sane_offset()
6595 s64 val = reg->var_off.value; in check_reg_sane_offset()
6651 ptr_limit = -(ptr_reg->var_off.value + ptr_reg->off); in retrieve_ptr_limit()
6744 bool off_is_imm = tnum_is_const(off_reg->var_off); in sanitize_ptr_alu()
6764 if (!tnum_is_const(off_reg->var_off) && in sanitize_ptr_alu()
6898 if (!tnum_is_const(reg->var_off)) { in check_stack_access_for_ptr_arithmetic()
6901 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_access_for_ptr_arithmetic()
6931 dst_reg->off + dst_reg->var_off.value)) in sanitize_check_bounds()
6961 bool known = tnum_is_const(off_reg->var_off); in adjust_ptr_min_max_vals()
7052 dst_reg->var_off = ptr_reg->var_off; in adjust_ptr_min_max_vals()
7082 dst_reg->var_off = tnum_add(ptr_reg->var_off, off_reg->var_off); in adjust_ptr_min_max_vals()
7114 dst_reg->var_off = ptr_reg->var_off; in adjust_ptr_min_max_vals()
7141 dst_reg->var_off = tnum_sub(ptr_reg->var_off, off_reg->var_off); in adjust_ptr_min_max_vals()
7359 bool src_known = tnum_subreg_is_const(src_reg->var_off); in scalar32_min_max_and()
7360 bool dst_known = tnum_subreg_is_const(dst_reg->var_off); in scalar32_min_max_and()
7361 struct tnum var32_off = tnum_subreg(dst_reg->var_off); in scalar32_min_max_and()
7393 bool src_known = tnum_is_const(src_reg->var_off); in scalar_min_max_and()
7394 bool dst_known = tnum_is_const(dst_reg->var_off); in scalar_min_max_and()
7399 __mark_reg_known(dst_reg, dst_reg->var_off.value); in scalar_min_max_and()
7406 dst_reg->umin_value = dst_reg->var_off.value; in scalar_min_max_and()
7428 bool src_known = tnum_subreg_is_const(src_reg->var_off); in scalar32_min_max_or()
7429 bool dst_known = tnum_subreg_is_const(dst_reg->var_off); in scalar32_min_max_or()
7430 struct tnum var32_off = tnum_subreg(dst_reg->var_off); in scalar32_min_max_or()
7462 bool src_known = tnum_is_const(src_reg->var_off); in scalar_min_max_or()
7463 bool dst_known = tnum_is_const(dst_reg->var_off); in scalar_min_max_or()
7468 __mark_reg_known(dst_reg, dst_reg->var_off.value); in scalar_min_max_or()
7476 dst_reg->umax_value = dst_reg->var_off.value | dst_reg->var_off.mask; in scalar_min_max_or()
7497 bool src_known = tnum_subreg_is_const(src_reg->var_off); in scalar32_min_max_xor()
7498 bool dst_known = tnum_subreg_is_const(dst_reg->var_off); in scalar32_min_max_xor()
7499 struct tnum var32_off = tnum_subreg(dst_reg->var_off); in scalar32_min_max_xor()
7526 bool src_known = tnum_is_const(src_reg->var_off); in scalar_min_max_xor()
7527 bool dst_known = tnum_is_const(dst_reg->var_off); in scalar_min_max_xor()
7532 __mark_reg_known(dst_reg, dst_reg->var_off.value); in scalar_min_max_xor()
7537 dst_reg->umin_value = dst_reg->var_off.value; in scalar_min_max_xor()
7538 dst_reg->umax_value = dst_reg->var_off.value | dst_reg->var_off.mask; in scalar_min_max_xor()
7578 struct tnum subreg = tnum_subreg(dst_reg->var_off); in scalar32_min_max_lsh()
7581 dst_reg->var_off = tnum_subreg(tnum_lshift(subreg, umin_val)); in scalar32_min_max_lsh()
7630 dst_reg->var_off = tnum_lshift(dst_reg->var_off, umin_val); in scalar_min_max_lsh()
7638 struct tnum subreg = tnum_subreg(dst_reg->var_off); in scalar32_min_max_rsh()
7659 dst_reg->var_off = tnum_rshift(subreg, umin_val); in scalar32_min_max_rsh()
7689 dst_reg->var_off = tnum_rshift(dst_reg->var_off, umin_val); in scalar_min_max_rsh()
7712 dst_reg->var_off = tnum_arshift(tnum_subreg(dst_reg->var_off), umin_val, 32); in scalar32_min_max_arsh()
7735 dst_reg->var_off = tnum_arshift(dst_reg->var_off, umin_val, 64); in scalar_min_max_arsh()
7782 src_known = tnum_subreg_is_const(src_reg.var_off); in adjust_scalar_min_max_vals()
7793 src_known = tnum_is_const(src_reg.var_off); in adjust_scalar_min_max_vals()
7835 dst_reg->var_off = tnum_add(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
7840 dst_reg->var_off = tnum_sub(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
7843 dst_reg->var_off = tnum_mul(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
7848 dst_reg->var_off = tnum_and(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
7853 dst_reg->var_off = tnum_or(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
7858 dst_reg->var_off = tnum_xor(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
8271 struct tnum subreg = tnum_subreg(reg->var_off); in is_branch32_taken()
8349 if (tnum_is_const(reg->var_off)) in is_branch64_taken()
8350 return !!tnum_equals_const(reg->var_off, val); in is_branch64_taken()
8353 if (tnum_is_const(reg->var_off)) in is_branch64_taken()
8354 return !tnum_equals_const(reg->var_off, val); in is_branch64_taken()
8357 if ((~reg->var_off.mask & reg->var_off.value) & val) in is_branch64_taken()
8359 if (!((reg->var_off.mask | reg->var_off.value) & val)) in is_branch64_taken()
8521 struct tnum false_32off = tnum_subreg(false_reg->var_off); in reg_set_min_max()
8522 struct tnum false_64off = false_reg->var_off; in reg_set_min_max()
8523 struct tnum true_32off = tnum_subreg(true_reg->var_off); in reg_set_min_max()
8524 struct tnum true_64off = true_reg->var_off; in reg_set_min_max()
8652 false_reg->var_off = tnum_or(tnum_clear_subreg(false_64off), in reg_set_min_max()
8654 true_reg->var_off = tnum_or(tnum_clear_subreg(true_64off), in reg_set_min_max()
8659 false_reg->var_off = false_64off; in reg_set_min_max()
8660 true_reg->var_off = true_64off; in reg_set_min_max()
8694 src_reg->var_off = dst_reg->var_off = tnum_intersect(src_reg->var_off, in __reg_combine_min_max()
8695 dst_reg->var_off); in __reg_combine_min_max()
8740 !tnum_equals_const(reg->var_off, 0) || in mark_ptr_or_null_reg()
8992 is_jmp32 && tnum_is_const(tnum_subreg(src_reg->var_off))) { in check_cond_jmp_op()
8994 tnum_subreg(src_reg->var_off).value, in check_cond_jmp_op()
8998 !is_jmp32 && tnum_is_const(src_reg->var_off)) { in check_cond_jmp_op()
9000 src_reg->var_off.value, in check_cond_jmp_op()
9064 if (tnum_is_const(src_reg->var_off) || in check_cond_jmp_op()
9066 tnum_is_const(tnum_subreg(src_reg->var_off)))) in check_cond_jmp_op()
9069 src_reg->var_off.value, in check_cond_jmp_op()
9070 tnum_subreg(src_reg->var_off).value, in check_cond_jmp_op()
9072 else if (tnum_is_const(dst_reg->var_off) || in check_cond_jmp_op()
9074 tnum_is_const(tnum_subreg(dst_reg->var_off)))) in check_cond_jmp_op()
9077 dst_reg->var_off.value, in check_cond_jmp_op()
9078 tnum_subreg(dst_reg->var_off).value, in check_cond_jmp_op()
9368 if (!tnum_in(tnum_const(0), reg->var_off)) { in check_return_code()
9446 if (!tnum_in(range, reg->var_off)) { in check_return_code()
9452 tnum_in(enforce_attach_type_range, reg->var_off)) in check_return_code()
10232 tnum_in(rold->var_off, rcur->var_off); in regsafe()
10255 tnum_in(rold->var_off, rcur->var_off); in regsafe()
10292 tnum_in(rold->var_off, rcur->var_off); in regsafe()