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!

Reply via email to