Lines Matching refs:var_off
418 if (!tnum_is_unknown(reg->var_off)) { in verbose_invalid_scalar()
419 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in verbose_invalid_scalar()
700 if (!tnum_is_const(reg->var_off)) { in stack_slot_obj_get_spi()
705 off = reg->off + reg->var_off.value; in stack_slot_obj_get_spi()
1367 tnum_is_const(reg->var_off)) { in print_verifier_state()
1370 verbose(env, "%lld", reg->var_off.value + reg->off); in print_verifier_state()
1400 if (tnum_is_const(reg->var_off)) { in print_verifier_state()
1405 verbose_a("imm=%llx", reg->var_off.value); in print_verifier_state()
1417 if (!tnum_is_unknown(reg->var_off)) { in print_verifier_state()
1420 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in print_verifier_state()
1466 if (t == SCALAR_VALUE && tnum_is_const(reg->var_off)) in print_verifier_state()
1467 verbose(env, "%lld", reg->var_off.value + reg->off); in print_verifier_state()
1882 reg->var_off = tnum_const(imm); in ___mark_reg_known()
1901 offsetof(struct bpf_reg_state, var_off) - sizeof(reg->type)); in __mark_reg_known()
1909 reg->var_off = tnum_const_subreg(reg->var_off, imm); in __mark_reg32_known()
2023 tnum_equals_const(reg->var_off, 0); in reg_is_init_pkt_pointer()
2058 struct tnum var32_off = tnum_subreg(reg->var_off); in __update_reg32_bounds()
2075 reg->var_off.value | (reg->var_off.mask & S64_MIN)); in __update_reg64_bounds()
2078 reg->var_off.value | (reg->var_off.mask & S64_MAX)); in __update_reg64_bounds()
2079 reg->umin_value = max(reg->umin_value, reg->var_off.value); in __update_reg64_bounds()
2081 reg->var_off.value | reg->var_off.mask); in __update_reg64_bounds()
2168 struct tnum var64_off = tnum_intersect(reg->var_off, in __reg_bound_offset()
2175 reg->var_off = tnum_or(tnum_clear_subreg(var64_off), var32_off); in __reg_bound_offset()
2223 if (tnum_equals_const(tnum_clear_subreg(reg->var_off), 0)) { in __reg_combine_32_into_64()
2270 memset(reg, 0, offsetof(struct bpf_reg_state, var_off)); in __mark_reg_unknown()
2274 reg->var_off = tnum_unknown; in __mark_reg_unknown()
2905 parent->var_off.value, parent->off); in mark_reg_read()
4223 return reg->type == SCALAR_VALUE && tnum_equals_const(reg->var_off, 0); in register_is_null()
4228 return reg->type == SCALAR_VALUE && tnum_is_const(reg->var_off); in register_is_const()
4233 return tnum_is_unknown(reg->var_off) && in __is_scalar_unbounded()
4762 bool var_off = !tnum_is_const(reg->var_off); in check_stack_read() local
4768 if (dst_regno < 0 && var_off) { in check_stack_read()
4771 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_read()
4785 if (!var_off) { in check_stack_read()
4786 off += reg->var_off.value; in check_stack_read()
4819 if (tnum_is_const(reg->var_off)) { in check_stack_write()
4820 off += reg->var_off.value; in check_stack_write()
4968 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in __check_ptr_off_reg()
4971 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in __check_ptr_off_reg()
5187 if (!tnum_is_const(reg->var_off)) { in check_map_access()
5191 if (p != off + reg->var_off.value) { in check_map_access()
5193 p, off + reg->var_off.value); in check_map_access()
5488 reg_off = tnum_add(reg->var_off, tnum_const(ip_align + reg->off + off)); in check_pkt_ptr_alignment()
5492 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_pkt_ptr_alignment()
5513 reg_off = tnum_add(reg->var_off, tnum_const(reg->off + off)); in check_generic_ptr_alignment()
5517 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_generic_ptr_alignment()
5753 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in __check_buffer_access()
5756 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in __check_buffer_access()
5804 reg->var_off = tnum_subreg(reg->var_off); in zext_32_to_64()
5816 reg->var_off = tnum_cast(reg->var_off, size); in coerce_reg_to_size()
5855 reg->var_off = tnum_unknown; in set_sext64_default_val()
5864 if (tnum_is_const(reg->var_off)) { in coerce_reg_to_size_sx()
5865 u64_cval = reg->var_off.value; in coerce_reg_to_size_sx()
5867 reg->var_off = tnum_const((s8)u64_cval); in coerce_reg_to_size_sx()
5869 reg->var_off = tnum_const((s16)u64_cval); in coerce_reg_to_size_sx()
5872 reg->var_off = tnum_const((s32)u64_cval); in coerce_reg_to_size_sx()
5874 u64_cval = reg->var_off.value; in coerce_reg_to_size_sx()
5909 reg->var_off = tnum_range(s64_min, s64_max); in coerce_reg_to_size_sx()
5937 if (tnum_is_const(reg->var_off)) { in coerce_subreg_to_size_sx()
5938 u32_val = reg->var_off.value; in coerce_subreg_to_size_sx()
5940 reg->var_off = tnum_const((s8)u32_val); in coerce_subreg_to_size_sx()
5942 reg->var_off = tnum_const((s16)u32_val); in coerce_subreg_to_size_sx()
5944 u32_val = reg->var_off.value; in coerce_subreg_to_size_sx()
6169 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in check_ptr_to_btf_access()
6172 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_ptr_to_btf_access()
6392 if (tnum_is_const(reg->var_off)) { in check_stack_access_within_bounds()
6393 min_off = reg->var_off.value + off; in check_stack_access_within_bounds()
6417 if (tnum_is_const(reg->var_off)) { in check_stack_access_within_bounds()
6423 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_access_within_bounds()
6484 if (tnum_is_const(reg->var_off)) in check_mem_access()
6486 off + reg->var_off.value, BPF_KPTR); in check_mem_access()
6493 if (tnum_is_const(reg->var_off) && in check_mem_access()
6496 int map_off = off + reg->var_off.value; in check_mem_access()
6828 if (tnum_is_const(reg->var_off)) { in check_stack_range_initialized()
6829 min_off = max_off = reg->var_off.value + off; in check_stack_range_initialized()
6839 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_range_initialized()
6919 if (tnum_is_const(reg->var_off)) { in check_stack_range_initialized()
6925 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_range_initialized()
7059 if (!tnum_is_const(reg->var_off)) in check_mem_size_reg()
7181 bool is_const = tnum_is_const(reg->var_off); in process_spin_lock()
7182 u64 val = reg->var_off.value; in process_spin_lock()
7257 bool is_const = tnum_is_const(reg->var_off); in process_timer_func()
7259 u64 val = reg->var_off.value; in process_timer_func()
7298 if (!tnum_is_const(reg->var_off)) { in process_kptr_func()
7315 kptr_off = reg->off + reg->var_off.value; in process_kptr_func()
8311 if (!tnum_is_const(reg->var_off)) { in check_func_arg()
8316 meta->mem_size = reg->var_off.value; in check_func_arg()
8344 if (!tnum_is_const(reg->var_off)) { in check_func_arg()
8360 map_off = reg->off + reg->var_off.value; in check_func_arg()
9264 if (!tnum_in(range, r0->var_off)) { in prepare_func_exit()
9397 val = reg->var_off.value; in record_func_key()
9447 if (data_len_reg->var_off.value % 8) in check_bpf_snprintf_call()
9449 num_args = data_len_reg->var_off.value / 8; in check_bpf_snprintf_call()
9454 fmt_map_off = fmt_reg->off + fmt_reg->var_off.value; in check_bpf_snprintf_call()
10706 if (!tnum_is_const(reg->var_off)) { in __process_kf_arg_ptr_to_graph_root()
10714 head_off = reg->off + reg->var_off.value; in __process_kf_arg_ptr_to_graph_root()
10774 if (!tnum_is_const(reg->var_off)) { in __process_kf_arg_ptr_to_graph_node()
10781 node_off = reg->off + reg->var_off.value; in __process_kf_arg_ptr_to_graph_node()
10880 if (!tnum_is_const(reg->var_off)) { in check_kfunc_args()
10888 meta->arg_constant.value = reg->var_off.value; in check_kfunc_args()
10902 if (!tnum_is_const(reg->var_off)) { in check_kfunc_args()
10907 meta->r0_size = reg->var_off.value; in check_kfunc_args()
11192 if (!tnum_is_const(size_reg->var_off)) { in check_kfunc_args()
11197 meta->arg_constant.value = size_reg->var_off.value; in check_kfunc_args()
11672 bool known = tnum_is_const(reg->var_off); in check_reg_sane_offset()
11673 s64 val = reg->var_off.value; in check_reg_sane_offset()
11724 ptr_limit = -(ptr_reg->var_off.value + ptr_reg->off); in retrieve_ptr_limit()
11817 bool off_is_imm = tnum_is_const(off_reg->var_off); in sanitize_ptr_alu()
11837 if (!tnum_is_const(off_reg->var_off) && in sanitize_ptr_alu()
11971 if (!tnum_is_const(reg->var_off)) { in check_stack_access_for_ptr_arithmetic()
11974 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_access_for_ptr_arithmetic()
12004 dst_reg->off + dst_reg->var_off.value)) in sanitize_check_bounds()
12034 bool known = tnum_is_const(off_reg->var_off); in adjust_ptr_min_max_vals()
12124 dst_reg->var_off = ptr_reg->var_off; in adjust_ptr_min_max_vals()
12154 dst_reg->var_off = tnum_add(ptr_reg->var_off, off_reg->var_off); in adjust_ptr_min_max_vals()
12186 dst_reg->var_off = ptr_reg->var_off; in adjust_ptr_min_max_vals()
12213 dst_reg->var_off = tnum_sub(ptr_reg->var_off, off_reg->var_off); in adjust_ptr_min_max_vals()
12427 bool src_known = tnum_subreg_is_const(src_reg->var_off); in scalar32_min_max_and()
12428 bool dst_known = tnum_subreg_is_const(dst_reg->var_off); in scalar32_min_max_and()
12429 struct tnum var32_off = tnum_subreg(dst_reg->var_off); in scalar32_min_max_and()
12461 bool src_known = tnum_is_const(src_reg->var_off); in scalar_min_max_and()
12462 bool dst_known = tnum_is_const(dst_reg->var_off); in scalar_min_max_and()
12467 __mark_reg_known(dst_reg, dst_reg->var_off.value); in scalar_min_max_and()
12474 dst_reg->umin_value = dst_reg->var_off.value; in scalar_min_max_and()
12496 bool src_known = tnum_subreg_is_const(src_reg->var_off); in scalar32_min_max_or()
12497 bool dst_known = tnum_subreg_is_const(dst_reg->var_off); in scalar32_min_max_or()
12498 struct tnum var32_off = tnum_subreg(dst_reg->var_off); in scalar32_min_max_or()
12530 bool src_known = tnum_is_const(src_reg->var_off); in scalar_min_max_or()
12531 bool dst_known = tnum_is_const(dst_reg->var_off); in scalar_min_max_or()
12536 __mark_reg_known(dst_reg, dst_reg->var_off.value); in scalar_min_max_or()
12544 dst_reg->umax_value = dst_reg->var_off.value | dst_reg->var_off.mask; in scalar_min_max_or()
12565 bool src_known = tnum_subreg_is_const(src_reg->var_off); in scalar32_min_max_xor()
12566 bool dst_known = tnum_subreg_is_const(dst_reg->var_off); in scalar32_min_max_xor()
12567 struct tnum var32_off = tnum_subreg(dst_reg->var_off); in scalar32_min_max_xor()
12594 bool src_known = tnum_is_const(src_reg->var_off); in scalar_min_max_xor()
12595 bool dst_known = tnum_is_const(dst_reg->var_off); in scalar_min_max_xor()
12600 __mark_reg_known(dst_reg, dst_reg->var_off.value); in scalar_min_max_xor()
12605 dst_reg->umin_value = dst_reg->var_off.value; in scalar_min_max_xor()
12606 dst_reg->umax_value = dst_reg->var_off.value | dst_reg->var_off.mask; in scalar_min_max_xor()
12646 struct tnum subreg = tnum_subreg(dst_reg->var_off); in scalar32_min_max_lsh()
12649 dst_reg->var_off = tnum_subreg(tnum_lshift(subreg, umin_val)); in scalar32_min_max_lsh()
12698 dst_reg->var_off = tnum_lshift(dst_reg->var_off, umin_val); in scalar_min_max_lsh()
12706 struct tnum subreg = tnum_subreg(dst_reg->var_off); in scalar32_min_max_rsh()
12727 dst_reg->var_off = tnum_rshift(subreg, umin_val); in scalar32_min_max_rsh()
12757 dst_reg->var_off = tnum_rshift(dst_reg->var_off, umin_val); in scalar_min_max_rsh()
12780 dst_reg->var_off = tnum_arshift(tnum_subreg(dst_reg->var_off), umin_val, 32); in scalar32_min_max_arsh()
12803 dst_reg->var_off = tnum_arshift(dst_reg->var_off, umin_val, 64); in scalar_min_max_arsh()
12850 src_known = tnum_subreg_is_const(src_reg.var_off); in adjust_scalar_min_max_vals()
12861 src_known = tnum_is_const(src_reg.var_off); in adjust_scalar_min_max_vals()
12903 dst_reg->var_off = tnum_add(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
12908 dst_reg->var_off = tnum_sub(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
12911 dst_reg->var_off = tnum_mul(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
12916 dst_reg->var_off = tnum_and(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
12921 dst_reg->var_off = tnum_or(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
12926 dst_reg->var_off = tnum_xor(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
13151 !tnum_is_const(src_reg->var_off); in check_alu_op()
13385 struct tnum subreg = tnum_subreg(reg->var_off); in is_branch32_taken()
13467 if (tnum_is_const(reg->var_off)) in is_branch64_taken()
13468 return !!tnum_equals_const(reg->var_off, val); in is_branch64_taken()
13473 if (tnum_is_const(reg->var_off)) in is_branch64_taken()
13474 return !tnum_equals_const(reg->var_off, val); in is_branch64_taken()
13479 if ((~reg->var_off.mask & reg->var_off.value) & val) in is_branch64_taken()
13481 if (!((reg->var_off.mask | reg->var_off.value) & val)) in is_branch64_taken()
13643 struct tnum false_32off = tnum_subreg(false_reg->var_off); in reg_set_min_max()
13644 struct tnum false_64off = false_reg->var_off; in reg_set_min_max()
13645 struct tnum true_32off = tnum_subreg(true_reg->var_off); in reg_set_min_max()
13646 struct tnum true_64off = true_reg->var_off; in reg_set_min_max()
13672 true_32off = tnum_subreg(true_reg->var_off); in reg_set_min_max()
13675 true_64off = true_reg->var_off; in reg_set_min_max()
13681 false_32off = tnum_subreg(false_reg->var_off); in reg_set_min_max()
13684 false_64off = false_reg->var_off; in reg_set_min_max()
13781 false_reg->var_off = tnum_or(tnum_clear_subreg(false_64off), in reg_set_min_max()
13783 true_reg->var_off = tnum_or(tnum_clear_subreg(true_64off), in reg_set_min_max()
13788 false_reg->var_off = false_64off; in reg_set_min_max()
13789 true_reg->var_off = true_64off; in reg_set_min_max()
13823 src_reg->var_off = dst_reg->var_off = tnum_intersect(src_reg->var_off, in __reg_combine_min_max()
13824 dst_reg->var_off); in __reg_combine_min_max()
13860 if (WARN_ON_ONCE(reg->smin_value || reg->smax_value || !tnum_equals_const(reg->var_off, 0))) in mark_ptr_or_null_reg()
14087 is_jmp32 && tnum_is_const(tnum_subreg(src_reg->var_off))) { in check_cond_jmp_op()
14089 tnum_subreg(src_reg->var_off).value, in check_cond_jmp_op()
14093 !is_jmp32 && tnum_is_const(src_reg->var_off)) { in check_cond_jmp_op()
14095 src_reg->var_off.value, in check_cond_jmp_op()
14099 is_jmp32 && tnum_is_const(tnum_subreg(dst_reg->var_off))) { in check_cond_jmp_op()
14101 tnum_subreg(dst_reg->var_off).value, in check_cond_jmp_op()
14105 !is_jmp32 && tnum_is_const(dst_reg->var_off)) { in check_cond_jmp_op()
14107 dst_reg->var_off.value, in check_cond_jmp_op()
14171 if (tnum_is_const(src_reg->var_off) || in check_cond_jmp_op()
14173 tnum_is_const(tnum_subreg(src_reg->var_off)))) in check_cond_jmp_op()
14176 src_reg->var_off.value, in check_cond_jmp_op()
14177 tnum_subreg(src_reg->var_off).value, in check_cond_jmp_op()
14179 else if (tnum_is_const(dst_reg->var_off) || in check_cond_jmp_op()
14181 tnum_is_const(tnum_subreg(dst_reg->var_off)))) in check_cond_jmp_op()
14184 dst_reg->var_off.value, in check_cond_jmp_op()
14185 tnum_subreg(dst_reg->var_off).value, in check_cond_jmp_op()
14530 if (!tnum_in(const_0, reg->var_off)) { in check_return_code()
14627 if (!tnum_in(range, reg->var_off)) { in check_return_code()
14637 tnum_in(enforce_attach_type_range, reg->var_off)) in check_return_code()
15597 tnum_in(rold->var_off, rcur->var_off) && in regsafe()
15607 return memcmp(rold, rcur, offsetof(struct bpf_reg_state, var_off)) == 0 && in regsafe()
15609 tnum_in(rold->var_off, rcur->var_off) && in regsafe()
15632 tnum_in(rold->var_off, rcur->var_off); in regsafe()
16173 spi = __get_spi(iter_reg->off + iter_reg->var_off.value); in is_state_visited()