Lines Matching refs:visit
119 struct bpf_scc_visit *visit; in scc_visit_alloc() local
133 visit = &info->visits[num_visits]; in scc_visit_alloc()
134 memset(visit, 0, sizeof(*visit)); in scc_visit_alloc()
135 memcpy(&visit->callchain, callchain, sizeof(*callchain)); in scc_visit_alloc()
136 return visit; in scc_visit_alloc()
163 struct bpf_scc_visit *visit; in maybe_enter_scc() local
167 visit = scc_visit_lookup(env, callchain); in maybe_enter_scc()
168 visit = visit ?: scc_visit_alloc(env, callchain); in maybe_enter_scc()
169 if (!visit) in maybe_enter_scc()
171 if (!visit->entry_state) { in maybe_enter_scc()
172 visit->entry_state = st; in maybe_enter_scc()
179 static int propagate_backedges(struct bpf_verifier_env *env, struct bpf_scc_visit *visit);
188 struct bpf_scc_visit *visit; in maybe_exit_scc() local
192 visit = scc_visit_lookup(env, callchain); in maybe_exit_scc()
193 if (!visit) { in maybe_exit_scc()
213 if (visit->entry_state != st) in maybe_exit_scc()
217 visit->entry_state = NULL; in maybe_exit_scc()
218 env->num_backedges -= visit->num_backedges; in maybe_exit_scc()
219 visit->num_backedges = 0; in maybe_exit_scc()
221 return propagate_backedges(env, visit); in maybe_exit_scc()
232 struct bpf_scc_visit *visit; in add_scc_backedge() local
239 visit = scc_visit_lookup(env, callchain); in add_scc_backedge()
240 if (!visit) { in add_scc_backedge()
247 backedge->next = visit->backedges; in add_scc_backedge()
248 visit->backedges = backedge; in add_scc_backedge()
249 visit->num_backedges++; in add_scc_backedge()
263 struct bpf_scc_visit *visit; in incomplete_read_marks() local
267 visit = scc_visit_lookup(env, callchain); in incomplete_read_marks()
268 if (!visit) in incomplete_read_marks()
270 return !!visit->backedges; in incomplete_read_marks()
1085 static int propagate_backedges(struct bpf_verifier_env *env, struct bpf_scc_visit *visit) in propagate_backedges() argument
1097 for (backedge = visit->backedges; backedge; backedge = backedge->next) in propagate_backedges()
1102 for (backedge = visit->backedges; backedge; backedge = backedge->next) { in propagate_backedges()
1110 bpf_free_backedges(visit); in propagate_backedges()