On 05/02/2018 10:17 PM, Jiong Wang wrote: > This patch set clean up some code logic related with managing subprog > information. > > Part of the set are inspried by Edwin's code in his RFC: > > "bpf/verifier: subprog/func_call simplifications" > > but with clearer separation so it could be easier to review. > > - Path 1 unifies main prog and subprogs. All of them are registered in > env->subprog_starts. > > - After patch 1, it is clear that subprog_starts and subprog_stack_depth > could be merged as both of them now have main and subprog unified. > Patch 2 therefore does the merge, all subprog information are centred > at bpf_subprog_info. > > - Patch 3 goes further to introduce a new fake "exit" subprog which > serves as an ending marker to the subprog list. We could then turn the > following code snippets across verifier: > > if (env->subprog_cnt == cur_subprog + 1) > subprog_end = insn_cnt; > else > subprog_end = env->subprog_info[cur_subprog + 1].start; > > into: > subprog_end = env->subprog_info[cur_subprog + 1].start; > > There is no functional change by this patch set. > No bpf selftest (both non-jit and jit) regression found after this set. > > v2: > - fixed adjust_subprog_starts to also update fake "exit" subprog start. > - for John's suggestion on renaming subprog to prog, I could work on > a follow-up patch if it is recognized as worth the change. > > Jiong Wang (3): > bpf: unify main prog and subprog > bpf: centre subprog information fields > bpf: add faked "ending" subprog > > include/linux/bpf_verifier.h | 9 ++-- > kernel/bpf/verifier.c | 121 > ++++++++++++++++++++++--------------------- > 2 files changed, 67 insertions(+), 63 deletions(-) >
LGTM, applied to bpf-next, thanks Jiong!