Lines Matching refs:sl
49 struct bpf_verifier_state_list *sl) in maybe_free_verifier_state() argument
51 if (!sl->in_free_list in maybe_free_verifier_state()
52 || sl->state.branches != 0 in maybe_free_verifier_state()
53 || incomplete_read_marks(env, &sl->state)) in maybe_free_verifier_state()
55 list_del(&sl->node); in maybe_free_verifier_state()
56 bpf_free_verifier_state(&sl->state, false); in maybe_free_verifier_state()
57 kfree(sl); in maybe_free_verifier_state()
275 struct bpf_verifier_state_list *sl = NULL, *parent_sl; in bpf_update_branch_counts() local
293 if (sl) in bpf_update_branch_counts()
294 maybe_free_verifier_state(env, sl); in bpf_update_branch_counts()
296 sl = parent_sl; in bpf_update_branch_counts()
1241 struct bpf_verifier_state_list *sl; in bpf_is_state_visited() local
1272 sl = container_of(pos, struct bpf_verifier_state_list, node); in bpf_is_state_visited()
1274 if (sl->state.insn_idx != insn_idx) in bpf_is_state_visited()
1277 if (sl->state.branches) { in bpf_is_state_visited()
1278 struct bpf_func_state *frame = sl->state.frame[sl->state.curframe]; in bpf_is_state_visited()
1332 if (states_equal(env, &sl->state, cur, RANGE_WITHIN)) { in bpf_is_state_visited()
1356 if (sl->state.may_goto_depth != cur->may_goto_depth && in bpf_is_state_visited()
1357 states_equal(env, &sl->state, cur, RANGE_WITHIN)) { in bpf_is_state_visited()
1363 if (states_equal(env, &sl->state, cur, RANGE_WITHIN)) { in bpf_is_state_visited()
1370 if (states_maybe_looping(&sl->state, cur) && in bpf_is_state_visited()
1371 states_equal(env, &sl->state, cur, EXACT) && in bpf_is_state_visited()
1372 !iter_active_depths_differ(&sl->state, cur) && in bpf_is_state_visited()
1373 sl->state.may_goto_depth == cur->may_goto_depth && in bpf_is_state_visited()
1374 sl->state.callback_unroll_depth == cur->callback_unroll_depth) { in bpf_is_state_visited()
1380 print_verifier_state(env, &sl->state, cur->curframe, true); in bpf_is_state_visited()
1403 loop = incomplete_read_marks(env, &sl->state); in bpf_is_state_visited()
1404 if (states_equal(env, &sl->state, cur, loop ? RANGE_WITHIN : NOT_EXACT)) { in bpf_is_state_visited()
1406 sl->hit_cnt++; in bpf_is_state_visited()
1416 err = err ? : propagate_precision(env, &sl->state, cur, NULL); in bpf_is_state_visited()
1499 backedge->state.equal_state = &sl->state; in bpf_is_state_visited()
1501 err = err ?: add_scc_backedge(env, &sl->state, backedge); in bpf_is_state_visited()
1518 sl->miss_cnt++; in bpf_is_state_visited()
1527 n = bpf_is_force_checkpoint(env, insn_idx) && sl->state.branches > 0 ? 64 : 3; in bpf_is_state_visited()
1528 if (sl->miss_cnt > sl->hit_cnt * n + n) { in bpf_is_state_visited()
1532 sl->in_free_list = true; in bpf_is_state_visited()
1533 list_del(&sl->node); in bpf_is_state_visited()
1534 list_add(&sl->node, &env->free_list); in bpf_is_state_visited()
1537 maybe_free_verifier_state(env, sl); in bpf_is_state_visited()