Lines Matching refs:var_off
621 if (!tnum_is_const(reg->var_off)) { in stack_slot_obj_get_spi()
626 off = reg->off + reg->var_off.value; in stack_slot_obj_get_spi()
2073 reg->var_off = tnum_const(imm); in ___mark_reg_known()
2092 offsetof(struct bpf_reg_state, var_off) - sizeof(reg->type)); in __mark_reg_known()
2100 reg->var_off = tnum_const_subreg(reg->var_off, imm); in __mark_reg32_known()
2220 tnum_equals_const(reg->var_off, 0); in reg_is_init_pkt_pointer()
2255 struct tnum var32_off = tnum_subreg(reg->var_off); in __update_reg32_bounds()
2272 reg->var_off.value | (reg->var_off.mask & S64_MIN)); in __update_reg64_bounds()
2275 reg->var_off.value | (reg->var_off.mask & S64_MAX)); in __update_reg64_bounds()
2276 reg->umin_value = max(reg->umin_value, reg->var_off.value); in __update_reg64_bounds()
2278 reg->var_off.value | reg->var_off.mask); in __update_reg64_bounds()
2534 reg->var_off = tnum_intersect(reg->var_off, in __reg_deduce_mixed_bounds()
2549 struct tnum var64_off = tnum_intersect(reg->var_off, in __reg_bound_offset()
2556 reg->var_off = tnum_or(tnum_clear_subreg(var64_off), var32_off); in __reg_bound_offset()
2588 if (tnum_is_const(reg->var_off)) { in reg_bounds_sanity_check()
2589 u64 uval = reg->var_off.value; in reg_bounds_sanity_check()
2599 if (tnum_subreg_is_const(reg->var_off)) { in reg_bounds_sanity_check()
2600 u32 uval32 = tnum_subreg(reg->var_off).value; in reg_bounds_sanity_check()
2618 reg->var_off.value, reg->var_off.mask); in reg_bounds_sanity_check()
2656 memset(reg, 0, offsetof(struct bpf_reg_state, var_off)); in __mark_reg_unknown_imprecise()
2660 reg->var_off = tnum_unknown; in __mark_reg_unknown_imprecise()
3465 parent->var_off.value, parent->off); in mark_reg_read()
4878 return reg->type == SCALAR_VALUE && tnum_equals_const(reg->var_off, 0); in register_is_null()
4885 tnum_is_const(subreg32 ? tnum_subreg(reg->var_off) : reg->var_off); in is_reg_const()
4891 return subreg32 ? tnum_subreg(reg->var_off).value : reg->var_off.value; in reg_const_value()
4919 if (!src_reg->id && !tnum_is_const(src_reg->var_off)) in assign_scalar_id_before_mov()
5211 if (tnum_is_const(spill_reg->var_off) && spill_reg->var_off.value == 0) { in check_stack_write_var_off()
5372 tnum_is_const(reg->var_off) && reg->var_off.value == 0) { in check_stack_read_fixed_off()
5497 bool var_off = !tnum_is_const(reg->var_off); in check_stack_read() local
5503 if (dst_regno < 0 && var_off) { in check_stack_read()
5506 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_read()
5520 if (!var_off) { in check_stack_read()
5521 off += reg->var_off.value; in check_stack_read()
5554 if (tnum_is_const(reg->var_off)) { in check_stack_write()
5555 off += reg->var_off.value; in check_stack_write()
5703 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in __check_ptr_off_reg()
5706 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in __check_ptr_off_reg()
5997 if (!tnum_is_const(reg->var_off)) { in check_map_access()
6002 if (p != off + reg->var_off.value) { in check_map_access()
6005 p, off + reg->var_off.value); in check_map_access()
6325 reg_off = tnum_add(reg->var_off, tnum_const(ip_align + reg->off + off)); in check_pkt_ptr_alignment()
6329 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_pkt_ptr_alignment()
6350 reg_off = tnum_add(reg->var_off, tnum_const(reg->off + off)); in check_generic_ptr_alignment()
6354 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_generic_ptr_alignment()
6698 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in __check_buffer_access()
6701 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in __check_buffer_access()
6749 reg->var_off = tnum_subreg(reg->var_off); in zext_32_to_64()
6761 reg->var_off = tnum_cast(reg->var_off, size); in coerce_reg_to_size()
6801 reg->var_off = tnum_unknown; in set_sext64_default_val()
6810 if (tnum_is_const(reg->var_off)) { in coerce_reg_to_size_sx()
6811 u64_cval = reg->var_off.value; in coerce_reg_to_size_sx()
6813 reg->var_off = tnum_const((s8)u64_cval); in coerce_reg_to_size_sx()
6815 reg->var_off = tnum_const((s16)u64_cval); in coerce_reg_to_size_sx()
6818 reg->var_off = tnum_const((s32)u64_cval); in coerce_reg_to_size_sx()
6820 u64_cval = reg->var_off.value; in coerce_reg_to_size_sx()
6855 reg->var_off = tnum_range(s64_min, s64_max); in coerce_reg_to_size_sx()
6875 reg->var_off = tnum_subreg(tnum_unknown); in set_sext32_default_val()
6884 if (tnum_is_const(reg->var_off)) { in coerce_subreg_to_size_sx()
6885 u32_val = reg->var_off.value; in coerce_subreg_to_size_sx()
6887 reg->var_off = tnum_const((s8)u32_val); in coerce_subreg_to_size_sx()
6889 reg->var_off = tnum_const((s16)u32_val); in coerce_subreg_to_size_sx()
6891 u32_val = reg->var_off.value; in coerce_subreg_to_size_sx()
6920 reg->var_off = tnum_subreg(tnum_range(s32_min, s32_max)); in coerce_subreg_to_size_sx()
7127 if (!tnum_is_const(reg->var_off) || reg->var_off.value) { in check_ptr_to_btf_access()
7130 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_ptr_to_btf_access()
7350 if (tnum_is_const(reg->var_off)) { in check_stack_access_within_bounds()
7351 min_off = (s64)reg->var_off.value + off; in check_stack_access_within_bounds()
7374 if (tnum_is_const(reg->var_off)) { in check_stack_access_within_bounds()
7380 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_access_within_bounds()
7456 if (tnum_is_const(reg->var_off)) in check_mem_access()
7458 off + reg->var_off.value, BPF_KPTR | BPF_UPTR); in check_mem_access()
7465 if (tnum_is_const(reg->var_off) && in check_mem_access()
7468 int map_off = off + reg->var_off.value; in check_mem_access()
7921 if (tnum_is_const(reg->var_off)) { in check_stack_range_initialized()
7922 min_off = max_off = reg->var_off.value + off; in check_stack_range_initialized()
7932 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_range_initialized()
8014 if (tnum_is_const(reg->var_off)) { in check_stack_range_initialized()
8020 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_range_initialized()
8161 if (!tnum_is_const(reg->var_off)) in check_mem_size_reg()
8277 bool is_const = tnum_is_const(reg->var_off); in process_spin_lock()
8279 u64 val = reg->var_off.value; in process_spin_lock()
8391 bool is_const = tnum_is_const(reg->var_off); in process_timer_func()
8393 u64 val = reg->var_off.value; in process_timer_func()
8429 u64 val = reg->var_off.value; in process_wq_func()
8463 if (!tnum_is_const(reg->var_off)) { in process_kptr_func()
8475 kptr_off = reg->off + reg->var_off.value; in process_kptr_func()
9420 if (!tnum_is_const(reg->var_off)) { in check_reg_const_str()
9436 map_off = reg->off + reg->var_off.value; in check_reg_const_str()
9470 if (!tnum_is_const(key->var_off)) in get_constant_map_key()
9473 stack_off = key->off + key->var_off.value; in get_constant_map_key()
9496 if (!tnum_is_const(reg->var_off)) in get_constant_map_key()
9508 *value = reg->var_off.value; in get_constant_map_key()
9757 if (!tnum_is_const(reg->var_off)) { in check_func_arg()
9762 meta->mem_size = reg->var_off.value; in check_func_arg()
11025 val = reg->var_off.value; in record_func_key()
11116 if (data_len_reg->var_off.value % 8) in check_bpf_snprintf_call()
11118 num_args = data_len_reg->var_off.value / 8; in check_bpf_snprintf_call()
11123 fmt_map_off = fmt_reg->off + fmt_reg->var_off.value; in check_bpf_snprintf_call()
12376 (reg->off || !tnum_is_const(reg->var_off) || in process_kf_arg_ptr_to_btf_id()
12377 reg->var_off.value)); in process_kf_arg_ptr_to_btf_id()
12724 if (!tnum_is_const(reg->var_off)) { in __process_kf_arg_ptr_to_graph_root()
12732 head_off = reg->off + reg->var_off.value; in __process_kf_arg_ptr_to_graph_root()
12792 if (!tnum_is_const(reg->var_off)) { in __process_kf_arg_ptr_to_graph_node()
12799 node_off = reg->off + reg->var_off.value; in __process_kf_arg_ptr_to_graph_node()
12920 if (!tnum_is_const(reg->var_off)) { in check_kfunc_args()
12928 meta->arg_constant.value = reg->var_off.value; in check_kfunc_args()
12942 if (!tnum_is_const(reg->var_off)) { in check_kfunc_args()
12947 meta->r0_size = reg->var_off.value; in check_kfunc_args()
13279 if (!tnum_is_const(size_reg->var_off)) { in check_kfunc_args()
13284 meta->arg_constant.value = size_reg->var_off.value; in check_kfunc_args()
13927 bool known = tnum_is_const(reg->var_off); in check_reg_sane_offset()
13928 s64 val = reg->var_off.value; in check_reg_sane_offset()
13979 ptr_limit = -(ptr_reg->var_off.value + ptr_reg->off); in retrieve_ptr_limit()
14072 bool off_is_imm = tnum_is_const(off_reg->var_off); in sanitize_ptr_alu()
14092 if (!tnum_is_const(off_reg->var_off) && in sanitize_ptr_alu()
14226 if (!tnum_is_const(reg->var_off)) { in check_stack_access_for_ptr_arithmetic()
14229 tnum_strn(tn_buf, sizeof(tn_buf), reg->var_off); in check_stack_access_for_ptr_arithmetic()
14259 dst_reg->off + dst_reg->var_off.value)) in sanitize_check_bounds()
14289 bool known = tnum_is_const(off_reg->var_off); in adjust_ptr_min_max_vals()
14390 dst_reg->var_off = ptr_reg->var_off; in adjust_ptr_min_max_vals()
14414 dst_reg->var_off = tnum_add(ptr_reg->var_off, off_reg->var_off); in adjust_ptr_min_max_vals()
14446 dst_reg->var_off = ptr_reg->var_off; in adjust_ptr_min_max_vals()
14470 dst_reg->var_off = tnum_sub(ptr_reg->var_off, off_reg->var_off); in adjust_ptr_min_max_vals()
14658 bool src_known = tnum_subreg_is_const(src_reg->var_off); in scalar32_min_max_and()
14659 bool dst_known = tnum_subreg_is_const(dst_reg->var_off); in scalar32_min_max_and()
14660 struct tnum var32_off = tnum_subreg(dst_reg->var_off); in scalar32_min_max_and()
14689 bool src_known = tnum_is_const(src_reg->var_off); in scalar_min_max_and()
14690 bool dst_known = tnum_is_const(dst_reg->var_off); in scalar_min_max_and()
14694 __mark_reg_known(dst_reg, dst_reg->var_off.value); in scalar_min_max_and()
14701 dst_reg->umin_value = dst_reg->var_off.value; in scalar_min_max_and()
14721 bool src_known = tnum_subreg_is_const(src_reg->var_off); in scalar32_min_max_or()
14722 bool dst_known = tnum_subreg_is_const(dst_reg->var_off); in scalar32_min_max_or()
14723 struct tnum var32_off = tnum_subreg(dst_reg->var_off); in scalar32_min_max_or()
14752 bool src_known = tnum_is_const(src_reg->var_off); in scalar_min_max_or()
14753 bool dst_known = tnum_is_const(dst_reg->var_off); in scalar_min_max_or()
14757 __mark_reg_known(dst_reg, dst_reg->var_off.value); in scalar_min_max_or()
14765 dst_reg->umax_value = dst_reg->var_off.value | dst_reg->var_off.mask; in scalar_min_max_or()
14784 bool src_known = tnum_subreg_is_const(src_reg->var_off); in scalar32_min_max_xor()
14785 bool dst_known = tnum_subreg_is_const(dst_reg->var_off); in scalar32_min_max_xor()
14786 struct tnum var32_off = tnum_subreg(dst_reg->var_off); in scalar32_min_max_xor()
14812 bool src_known = tnum_is_const(src_reg->var_off); in scalar_min_max_xor()
14813 bool dst_known = tnum_is_const(dst_reg->var_off); in scalar_min_max_xor()
14817 __mark_reg_known(dst_reg, dst_reg->var_off.value); in scalar_min_max_xor()
14822 dst_reg->umin_value = dst_reg->var_off.value; in scalar_min_max_xor()
14823 dst_reg->umax_value = dst_reg->var_off.value | dst_reg->var_off.mask; in scalar_min_max_xor()
14863 struct tnum subreg = tnum_subreg(dst_reg->var_off); in scalar32_min_max_lsh()
14866 dst_reg->var_off = tnum_subreg(tnum_lshift(subreg, umin_val)); in scalar32_min_max_lsh()
14915 dst_reg->var_off = tnum_lshift(dst_reg->var_off, umin_val); in scalar_min_max_lsh()
14923 struct tnum subreg = tnum_subreg(dst_reg->var_off); in scalar32_min_max_rsh()
14944 dst_reg->var_off = tnum_rshift(subreg, umin_val); in scalar32_min_max_rsh()
14974 dst_reg->var_off = tnum_rshift(dst_reg->var_off, umin_val); in scalar_min_max_rsh()
14997 dst_reg->var_off = tnum_arshift(tnum_subreg(dst_reg->var_off), umin_val, 32); in scalar32_min_max_arsh()
15020 dst_reg->var_off = tnum_arshift(dst_reg->var_off, umin_val, 64); in scalar_min_max_arsh()
15043 if (tnum_subreg_is_const(src_reg->var_off) in is_safe_to_compute_dst_reg_range()
15048 if (tnum_is_const(src_reg->var_off) in is_safe_to_compute_dst_reg_range()
15118 dst_reg->var_off = tnum_add(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
15123 dst_reg->var_off = tnum_sub(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
15126 dst_reg->var_off = tnum_mul(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
15131 dst_reg->var_off = tnum_and(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
15136 dst_reg->var_off = tnum_or(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
15141 dst_reg->var_off = tnum_xor(dst_reg->var_off, src_reg.var_off); in adjust_scalar_min_max_vals()
15636 struct tnum t1 = is_jmp32 ? tnum_subreg(reg1->var_off) : reg1->var_off; in is_scalar_branch_taken()
15637 struct tnum t2 = is_jmp32 ? tnum_subreg(reg2->var_off) : reg2->var_off; in is_scalar_branch_taken()
15928 t = tnum_intersect(tnum_subreg(reg1->var_off), tnum_subreg(reg2->var_off)); in regs_refine_cond_op()
15929 reg1->var_off = tnum_with_subreg(reg1->var_off, t); in regs_refine_cond_op()
15930 reg2->var_off = tnum_with_subreg(reg2->var_off, t); in regs_refine_cond_op()
15941 reg1->var_off = tnum_intersect(reg1->var_off, reg2->var_off); in regs_refine_cond_op()
15942 reg2->var_off = reg1->var_off; in regs_refine_cond_op()
16003 t = tnum_or(tnum_subreg(reg1->var_off), tnum_const(val)); in regs_refine_cond_op()
16004 reg1->var_off = tnum_with_subreg(reg1->var_off, t); in regs_refine_cond_op()
16006 reg1->var_off = tnum_or(reg1->var_off, tnum_const(val)); in regs_refine_cond_op()
16016 t = tnum_and(tnum_subreg(reg1->var_off), tnum_const(~val)); in regs_refine_cond_op()
16017 reg1->var_off = tnum_with_subreg(reg1->var_off, t); in regs_refine_cond_op()
16019 reg1->var_off = tnum_and(reg1->var_off, tnum_const(~val)); in regs_refine_cond_op()
16117 if (WARN_ON_ONCE(reg->smin_value || reg->smax_value || !tnum_equals_const(reg->var_off, 0))) in mark_ptr_or_null_reg()
16365 reg->var_off = tnum_add(reg->var_off, fake_reg.var_off); in sync_linked_regs()
16998 tnum_in(enforce_attach_type_range, reg->var_off)) in check_return_code()
18388 tnum_in(rold->var_off, rcur->var_off) && in regsafe()
18398 return memcmp(rold, rcur, offsetof(struct bpf_reg_state, var_off)) == 0 && in regsafe()
18400 tnum_in(rold->var_off, rcur->var_off) && in regsafe()
18423 tnum_in(rold->var_off, rcur->var_off); in regsafe()
19093 spi = __get_spi(iter_reg->off + iter_reg->var_off.value); in is_state_visited()