Lines Matching refs:var_off

409 	if (!tnum_is_unknown(reg->var_off)) {  in verbose_invalid_scalar()
410 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in verbose_invalid_scalar()
643 tnum_is_const(reg->var_off)) { in print_verifier_state()
645 verbose(env, "%lld", reg->var_off.value + reg->off); in print_verifier_state()
665 if (tnum_is_const(reg->var_off)) { in print_verifier_state()
670 verbose(env, ",imm=%llx", reg->var_off.value); in print_verifier_state()
686 if (!tnum_is_unknown(reg->var_off)) { in print_verifier_state()
689 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in print_verifier_state()
734 if (t == SCALAR_VALUE && tnum_is_const(reg->var_off)) in print_verifier_state()
735 verbose(env, "%lld", reg->var_off.value + reg->off); in print_verifier_state()
1083 reg->var_off = tnum_const(imm); in ___mark_reg_known()
1102 offsetof(struct bpf_reg_state, var_off) - sizeof(reg->type)); in __mark_reg_known()
1108 reg->var_off = tnum_const_subreg(reg->var_off, imm); in __mark_reg32_known()
1214 tnum_equals_const(reg->var_off, 0); in reg_is_init_pkt_pointer()
1249 struct tnum var32_off = tnum_subreg(reg->var_off); in __update_reg32_bounds()
1266 reg->var_off.value | (reg->var_off.mask & S64_MIN)); in __update_reg64_bounds()
1269 reg->var_off.value | (reg->var_off.mask & S64_MAX)); in __update_reg64_bounds()
1270 reg->umin_value = max(reg->umin_value, reg->var_off.value); in __update_reg64_bounds()
1272 reg->var_off.value | reg->var_off.mask); in __update_reg64_bounds()
1359 struct tnum var64_off = tnum_intersect(reg->var_off, in __reg_bound_offset()
1362 struct tnum var32_off = tnum_intersect(tnum_subreg(reg->var_off), in __reg_bound_offset()
1366 reg->var_off = tnum_or(tnum_clear_subreg(var64_off), var32_off); in __reg_bound_offset()
1399 if (tnum_equals_const(tnum_clear_subreg(reg->var_off), 0)) { in __reg_combine_32_into_64()
1462 memset(reg, 0, offsetof(struct bpf_reg_state, var_off)); in __mark_reg_unknown()
1464 reg->var_off = tnum_unknown; in __mark_reg_unknown()
2051 parent->var_off.value, parent->off); in mark_reg_read()
2746 return reg->type == SCALAR_VALUE && tnum_equals_const(reg->var_off, 0); in register_is_null()
2751 return reg->type == SCALAR_VALUE && tnum_is_const(reg->var_off); in register_is_const()
2756 return tnum_is_unknown(reg->var_off) && in __is_scalar_unbounded()
3229 bool var_off = !tnum_is_const(reg->var_off); in check_stack_read() local
3235 if (dst_regno < 0 && var_off) { in check_stack_read()
3238 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_read()
3247 if (!env->bypass_spec_v1 && var_off) { in check_stack_read()
3250 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_read()
3256 if (!var_off) { in check_stack_read()
3257 off += reg->var_off.value; in check_stack_read()
3290 if (tnum_is_const(reg->var_off)) { in check_stack_write()
3291 off += reg->var_off.value; in check_stack_write()
3703 reg_off = tnum_add(reg->var_off, tnum_const(ip_align + reg->off + off)); in check_pkt_ptr_alignment()
3707 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_pkt_ptr_alignment()
3728 reg_off = tnum_add(reg->var_off, tnum_const(reg->off + off)); in check_generic_ptr_alignment()
3732 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_generic_ptr_alignment()
3951 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in check_ctx_reg()
3954 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_ctx_reg()
3973 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in __check_buffer_access()
3976 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in __check_buffer_access()
4024 reg->var_off = tnum_subreg(reg->var_off); in zext_32_to_64()
4036 reg->var_off = tnum_cast(reg->var_off, size); in coerce_reg_to_size()
4127 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in check_ptr_to_btf_access()
4130 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_ptr_to_btf_access()
4261 if (tnum_is_const(reg->var_off)) { in check_stack_access_within_bounds()
4262 min_off = reg->var_off.value + off; in check_stack_access_within_bounds()
4286 if (tnum_is_const(reg->var_off)) { in check_stack_access_within_bounds()
4292 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_access_within_bounds()
4353 if (tnum_is_const(reg->var_off) && in check_mem_access()
4356 int map_off = off + reg->var_off.value; in check_mem_access()
4666 if (tnum_is_const(reg->var_off)) { in check_stack_range_initialized()
4667 min_off = max_off = reg->var_off.value + off; in check_stack_range_initialized()
4677 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_range_initialized()
4735 if (tnum_is_const(reg->var_off)) { in check_stack_range_initialized()
4741 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_range_initialized()
4859 bool is_const = tnum_is_const(reg->var_off); in process_spin_lock()
4861 u64 val = reg->var_off.value; in process_spin_lock()
4920 bool is_const = tnum_is_const(reg->var_off); in process_timer_func()
4922 u64 val = reg->var_off.value; in process_timer_func()
5182 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in check_reg_type()
5361 if (!tnum_is_const(reg->var_off)) in check_func_arg()
5394 if (!tnum_is_const(reg->var_off)) { in check_func_arg()
5399 meta->mem_size = reg->var_off.value; in check_func_arg()
5418 if (!tnum_is_const(reg->var_off)) { in check_func_arg()
5433 map_off = reg->off + reg->var_off.value; in check_func_arg()
6178 if (!tnum_in(range, r0->var_off)) { in prepare_func_exit()
6294 if (!register_is_const(reg) || !tnum_in(range, reg->var_off)) { in record_func_key()
6303 val = reg->var_off.value; in record_func_key()
6335 if (data_len_reg->var_off.value % 8) in check_bpf_snprintf_call()
6337 num_args = data_len_reg->var_off.value / 8; in check_bpf_snprintf_call()
6342 fmt_map_off = fmt_reg->off + fmt_reg->var_off.value; in check_bpf_snprintf_call()
6819 bool known = tnum_is_const(reg->var_off); in check_reg_sane_offset()
6820 s64 val = reg->var_off.value; in check_reg_sane_offset()
6876 ptr_limit = -(ptr_reg->var_off.value + ptr_reg->off); in retrieve_ptr_limit()
6969 bool off_is_imm = tnum_is_const(off_reg->var_off); in sanitize_ptr_alu()
6989 if (!tnum_is_const(off_reg->var_off) && in sanitize_ptr_alu()
7123 if (!tnum_is_const(reg->var_off)) { in check_stack_access_for_ptr_arithmetic()
7126 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_access_for_ptr_arithmetic()
7156 dst_reg->off + dst_reg->var_off.value)) in sanitize_check_bounds()
7186 bool known = tnum_is_const(off_reg->var_off); in adjust_ptr_min_max_vals()
7277 dst_reg->var_off = ptr_reg->var_off; in adjust_ptr_min_max_vals()
7307 dst_reg->var_off = tnum_add(ptr_reg->var_off, off_reg->var_off); in adjust_ptr_min_max_vals()
7339 dst_reg->var_off = ptr_reg->var_off; in adjust_ptr_min_max_vals()
7366 dst_reg->var_off = tnum_sub(ptr_reg->var_off, off_reg->var_off); in adjust_ptr_min_max_vals()
7584 bool src_known = tnum_subreg_is_const(src_reg->var_off); in scalar32_min_max_and()
7585 bool dst_known = tnum_subreg_is_const(dst_reg->var_off); in scalar32_min_max_and()
7586 struct tnum var32_off = tnum_subreg(dst_reg->var_off); in scalar32_min_max_and()
7618 bool src_known = tnum_is_const(src_reg->var_off); in scalar_min_max_and()
7619 bool dst_known = tnum_is_const(dst_reg->var_off); in scalar_min_max_and()
7624 __mark_reg_known(dst_reg, dst_reg->var_off.value); in scalar_min_max_and()
7631 dst_reg->umin_value = dst_reg->var_off.value; in scalar_min_max_and()
7653 bool src_known = tnum_subreg_is_const(src_reg->var_off); in scalar32_min_max_or()
7654 bool dst_known = tnum_subreg_is_const(dst_reg->var_off); in scalar32_min_max_or()
7655 struct tnum var32_off = tnum_subreg(dst_reg->var_off); in scalar32_min_max_or()
7687 bool src_known = tnum_is_const(src_reg->var_off); in scalar_min_max_or()
7688 bool dst_known = tnum_is_const(dst_reg->var_off); in scalar_min_max_or()
7693 __mark_reg_known(dst_reg, dst_reg->var_off.value); in scalar_min_max_or()
7701 dst_reg->umax_value = dst_reg->var_off.value | dst_reg->var_off.mask; in scalar_min_max_or()
7722 bool src_known = tnum_subreg_is_const(src_reg->var_off); in scalar32_min_max_xor()
7723 bool dst_known = tnum_subreg_is_const(dst_reg->var_off); in scalar32_min_max_xor()
7724 struct tnum var32_off = tnum_subreg(dst_reg->var_off); in scalar32_min_max_xor()
7751 bool src_known = tnum_is_const(src_reg->var_off); in scalar_min_max_xor()
7752 bool dst_known = tnum_is_const(dst_reg->var_off); in scalar_min_max_xor()
7757 __mark_reg_known(dst_reg, dst_reg->var_off.value); in scalar_min_max_xor()
7762 dst_reg->umin_value = dst_reg->var_off.value; in scalar_min_max_xor()
7763 dst_reg->umax_value = dst_reg->var_off.value | dst_reg->var_off.mask; in scalar_min_max_xor()
7803 struct tnum subreg = tnum_subreg(dst_reg->var_off); in scalar32_min_max_lsh()
7806 dst_reg->var_off = tnum_subreg(tnum_lshift(subreg, umin_val)); in scalar32_min_max_lsh()
7855 dst_reg->var_off = tnum_lshift(dst_reg->var_off, umin_val); in scalar_min_max_lsh()
7863 struct tnum subreg = tnum_subreg(dst_reg->var_off); in scalar32_min_max_rsh()
7884 dst_reg->var_off = tnum_rshift(subreg, umin_val); in scalar32_min_max_rsh()
7914 dst_reg->var_off = tnum_rshift(dst_reg->var_off, umin_val); in scalar_min_max_rsh()
7937 dst_reg->var_off = tnum_arshift(tnum_subreg(dst_reg->var_off), umin_val, 32); in scalar32_min_max_arsh()
7960 dst_reg->var_off = tnum_arshift(dst_reg->var_off, umin_val, 64); in scalar_min_max_arsh()
8007 src_known = tnum_subreg_is_const(src_reg.var_off); in adjust_scalar_min_max_vals()
8018 src_known = tnum_is_const(src_reg.var_off); in adjust_scalar_min_max_vals()
8060 dst_reg->var_off = tnum_add(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
8065 dst_reg->var_off = tnum_sub(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
8068 dst_reg->var_off = tnum_mul(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
8073 dst_reg->var_off = tnum_and(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
8078 dst_reg->var_off = tnum_or(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
8083 dst_reg->var_off = tnum_xor(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
8500 struct tnum subreg = tnum_subreg(reg->var_off); in is_branch32_taken()
8578 if (tnum_is_const(reg->var_off)) in is_branch64_taken()
8579 return !!tnum_equals_const(reg->var_off, val); in is_branch64_taken()
8582 if (tnum_is_const(reg->var_off)) in is_branch64_taken()
8583 return !tnum_equals_const(reg->var_off, val); in is_branch64_taken()
8586 if ((~reg->var_off.mask & reg->var_off.value) & val) in is_branch64_taken()
8588 if (!((reg->var_off.mask | reg->var_off.value) & val)) in is_branch64_taken()
8750 struct tnum false_32off = tnum_subreg(false_reg->var_off); in reg_set_min_max()
8751 struct tnum false_64off = false_reg->var_off; in reg_set_min_max()
8752 struct tnum true_32off = tnum_subreg(true_reg->var_off); in reg_set_min_max()
8753 struct tnum true_64off = true_reg->var_off; in reg_set_min_max()
8881 false_reg->var_off = tnum_or(tnum_clear_subreg(false_64off), in reg_set_min_max()
8883 true_reg->var_off = tnum_or(tnum_clear_subreg(true_64off), in reg_set_min_max()
8888 false_reg->var_off = false_64off; in reg_set_min_max()
8889 true_reg->var_off = true_64off; in reg_set_min_max()
8923 src_reg->var_off = dst_reg->var_off = tnum_intersect(src_reg->var_off, in __reg_combine_min_max()
8924 dst_reg->var_off); in __reg_combine_min_max()
8969 !tnum_equals_const(reg->var_off, 0) || in mark_ptr_or_null_reg()
9221 is_jmp32 && tnum_is_const(tnum_subreg(src_reg->var_off))) { in check_cond_jmp_op()
9223 tnum_subreg(src_reg->var_off).value, in check_cond_jmp_op()
9227 !is_jmp32 && tnum_is_const(src_reg->var_off)) { in check_cond_jmp_op()
9229 src_reg->var_off.value, in check_cond_jmp_op()
9293 if (tnum_is_const(src_reg->var_off) || in check_cond_jmp_op()
9295 tnum_is_const(tnum_subreg(src_reg->var_off)))) in check_cond_jmp_op()
9298 src_reg->var_off.value, in check_cond_jmp_op()
9299 tnum_subreg(src_reg->var_off).value, in check_cond_jmp_op()
9301 else if (tnum_is_const(dst_reg->var_off) || in check_cond_jmp_op()
9303 tnum_is_const(tnum_subreg(dst_reg->var_off)))) in check_cond_jmp_op()
9306 dst_reg->var_off.value, in check_cond_jmp_op()
9307 tnum_subreg(dst_reg->var_off).value, in check_cond_jmp_op()
9598 if (!tnum_in(tnum_const(0), reg->var_off)) { in check_return_code()
9676 if (!tnum_in(range, reg->var_off)) { in check_return_code()
9682 tnum_in(enforce_attach_type_range, reg->var_off)) in check_return_code()
10462 tnum_in(rold->var_off, rcur->var_off); in regsafe()
10485 tnum_in(rold->var_off, rcur->var_off); in regsafe()
10522 tnum_in(rold->var_off, rcur->var_off); in regsafe()