On Mon, Feb 7, 2022 at 10:26 PM Song Liu <song@xxxxxxxxxx> wrote: > > Instead of BUG_ON(), fail gracefully and return orig_prog. > > Fixes: 1022a5498f6f ("bpf, x86_64: Use bpf_jit_binary_pack_alloc") > Signed-off-by: Song Liu <song@xxxxxxxxxx> > --- > arch/x86/net/bpf_jit_comp.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c > index 643f38b91e30..08e8fd8f954a 100644 > --- a/arch/x86/net/bpf_jit_comp.c > +++ b/arch/x86/net/bpf_jit_comp.c > @@ -2380,7 +2380,11 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog) > * > * Both cases are serious bugs that we should not continue. I tweaked that comment a bit, since it's no longer accurate and pushed to bpf-next. Thanks! > */ > - BUG_ON(bpf_jit_binary_pack_finalize(prog, header, rw_header)); > + if (WARN_ON(bpf_jit_binary_pack_finalize(prog, header, rw_header))) { > + prog = orig_prog; > + goto out_addrs; > + } > + > bpf_tail_call_direct_fixup(prog); > } else { > jit_data->addrs = addrs; > -- > 2.30.2 >