Lines Matching refs:rold
9082 static bool regs_exact(const struct bpf_reg_state *rold,
9090 static bool scalars_exact_for_widen(const struct bpf_reg_state *rold, in scalars_exact_for_widen() argument
9093 return !memcmp(rold, rcur, offsetof(struct bpf_reg_state, id)); in scalars_exact_for_widen()
9097 struct bpf_reg_state *rold, struct bpf_reg_state *rcur) in maybe_widen_reg() argument
9099 if (rold->type != SCALAR_VALUE) in maybe_widen_reg()
9101 if (rold->type != rcur->type) in maybe_widen_reg()
9103 if (rold->precise || rcur->precise || scalars_exact_for_widen(rold, rcur)) in maybe_widen_reg()
19800 static bool regs_exact(const struct bpf_reg_state *rold, in regs_exact() argument
19804 return memcmp(rold, rcur, offsetof(struct bpf_reg_state, id)) == 0 && in regs_exact()
19805 check_ids(rold->id, rcur->id, idmap) && in regs_exact()
19806 check_ids(rold->ref_obj_id, rcur->ref_obj_id, idmap); in regs_exact()
19816 static bool regsafe(struct bpf_verifier_env *env, struct bpf_reg_state *rold, in regsafe() argument
19821 return regs_exact(rold, rcur, idmap); in regsafe()
19823 if (rold->type == NOT_INIT) in regsafe()
19848 if (rold->type != rcur->type) in regsafe()
19851 switch (base_type(rold->type)) { in regsafe()
19857 return memcmp(rold, rcur, offsetof(struct bpf_reg_state, id)) == 0 && in regsafe()
19858 check_scalar_ids(rold->id, rcur->id, idmap); in regsafe()
19860 if (!rold->precise && exact == NOT_EXACT) in regsafe()
19907 if (rold->id && in regsafe()
19908 (rold->id & BPF_ADD_CONST) != (rcur->id & BPF_ADD_CONST)) in regsafe()
19912 if ((rold->id & BPF_ADD_CONST) && rold->off != rcur->off) in regsafe()
19915 if (!check_scalar_ids(rold->id, rcur->id, idmap)) in regsafe()
19918 return range_within(rold, rcur) && tnum_in(rold->var_off, rcur->var_off); in regsafe()
19927 return memcmp(rold, rcur, offsetof(struct bpf_reg_state, var_off)) == 0 && in regsafe()
19928 range_within(rold, rcur) && in regsafe()
19929 tnum_in(rold->var_off, rcur->var_off) && in regsafe()
19930 check_ids(rold->id, rcur->id, idmap) && in regsafe()
19931 check_ids(rold->ref_obj_id, rcur->ref_obj_id, idmap); in regsafe()
19940 if (rold->range < 0 || rcur->range < 0) { in regsafe()
19942 if (rold->range != rcur->range) in regsafe()
19944 } else if (rold->range > rcur->range) { in regsafe()
19950 if (rold->off != rcur->off) in regsafe()
19953 if (!check_ids(rold->id, rcur->id, idmap)) in regsafe()
19956 return range_within(rold, rcur) && in regsafe()
19957 tnum_in(rold->var_off, rcur->var_off); in regsafe()
19962 return regs_exact(rold, rcur, idmap) && rold->frameno == rcur->frameno; in regsafe()
19966 return memcmp(rold, rcur, offsetof(struct bpf_reg_state, var_off)) == 0 && in regsafe()
19967 rold->off == rcur->off && range_within(rold, rcur) && in regsafe()
19968 tnum_in(rold->var_off, rcur->var_off); in regsafe()
19970 return regs_exact(rold, rcur, idmap); in regsafe()