Commit b5c677d8 authored by Eduard Zingerman's avatar Eduard Zingerman Committed by Alexei Starovoitov
Browse files

bpf: move REG_LIVE_DONE check to clean_live_states()



The next patch would add some relatively heavy-weight operation to
clean_live_states(), this operation can be skipped if REG_LIVE_DONE
is set. Move the check from clean_verifier_state() to
clean_verifier_state() as a small refactoring commit.

Signed-off-by: default avatarEduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/r/20250611200836.4135542-7-eddyz87@gmail.com


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent dfb2d4c6
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -18305,10 +18305,6 @@ static void clean_verifier_state(struct bpf_verifier_env *env,
{
	int i;
	if (st->frame[0]->regs[0].live & REG_LIVE_DONE)
		/* all regs in this state in all frames were already marked */
		return;
	for (i = 0; i <= st->curframe; i++)
		clean_func_state(env, st->frame[i]);
}
@@ -18363,6 +18359,9 @@ static void clean_live_states(struct bpf_verifier_env *env, int insn,
		if (sl->state.insn_idx != insn ||
		    !same_callsites(&sl->state, cur))
			continue;
		if (sl->state.frame[0]->regs[0].live & REG_LIVE_DONE)
			/* all regs in this state in all frames were already marked */
			continue;
		clean_verifier_state(env, &sl->state);
	}
}