bpf, x86_64: Fail gracefully on bpf_jit_binary_pack_finalize failures

Instead of BUG_ON(), fail gracefully and return orig_prog.

Fixes: 1022a5498f ("bpf, x86_64: Use bpf_jit_binary_pack_alloc")
Signed-off-by: Song Liu <song@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20220208062533.3802081-1-song@kernel.org
This commit is contained in:
Song Liu 2022-02-07 22:25:33 -08:00 committed by Alexei Starovoitov
parent 5d1e9f437d
commit f95f768f0a
1 changed files with 6 additions and 2 deletions

View File

@ -2378,9 +2378,13 @@ out_image:
* 1) header is not pointing to proper module memory;
* 2) the arch doesn't support bpf_arch_text_copy().
*
* Both cases are serious bugs that we should not continue.
* Both cases are serious bugs and justify WARN_ON.
*/
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;