Lines Matching defs:rold
510 static bool regs_exact(const struct bpf_reg_state *rold,
514 return memcmp(rold, rcur, offsetof(struct bpf_reg_state, id)) == 0 &&
515 check_ids(rold->id, rcur->id, idmap) &&
516 check_ids(rold->parent_id, rcur->parent_id, idmap) &&
517 check_ids(rold->map_uid, rcur->map_uid, idmap);
526 /* Returns true if (rold safe implies rcur safe) */
527 static bool regsafe(struct bpf_verifier_env *env, struct bpf_reg_state *rold,
532 return regs_exact(rold, rcur, idmap);
534 if (rold->type == NOT_INIT)
559 if (rold->type != rcur->type)
562 switch (base_type(rold->type)) {
568 return memcmp(rold, rcur, offsetof(struct bpf_reg_state, id)) == 0 &&
569 check_scalar_ids(rold->id, rcur->id, idmap);
571 if (!rold->precise && exact == NOT_EXACT)
574 * Linked register tracking uses rold->id to detect relationships.
575 * When rold->id == 0, the register is independent and any linking
576 * in rcur only adds constraints. When rold->id != 0, we must verify
580 * | | rold->id | rold + ADD_CONST | rold->id == 0 |
618 if (rold->id &&
619 (rold->id & BPF_ADD_CONST) != (rcur->id & BPF_ADD_CONST))
623 if ((rold->id & BPF_ADD_CONST) && rold->delta != rcur->delta)
626 if (!check_scalar_ids(rold->id, rcur->id, idmap))
629 return range_within(rold, rcur) && tnum_in(rold->var_off, rcur->var_off);
640 return memcmp(rold, rcur, offsetof(struct bpf_reg_state, var_off)) == 0 &&
641 range_within(rold, rcur) &&
642 tnum_in(rold->var_off, rcur->var_off) &&
643 check_ids(rold->id, rcur->id, idmap) &&
644 check_ids(rold->parent_id, rcur->parent_id, idmap) &&
645 check_ids(rold->map_uid, rcur->map_uid, idmap);
654 if (rold->range < 0 || rcur->range < 0) {
656 if (rold->range != rcur->range)
658 } else if (rold->range > rcur->range) {
662 if (!check_ids(rold->id, rcur->id, idmap))
665 if (rold->id && rold->r64.base != rcur->r64.base)
668 return range_within(rold, rcur) &&
669 tnum_in(rold->var_off, rcur->var_off);
673 return memcmp(rold, rcur, offsetof(struct bpf_reg_state, var_off)) == 0 &&
674 range_within(rold, rcur) && tnum_in(rold->var_off, rcur->var_off);
676 return regs_exact(rold, rcur, idmap);