bpf: change back to orig prog on too many passes
authorDaniel Borkmann <daniel@iogearbox.net>
Fri, 6 Jan 2017 23:26:33 +0000 (00:26 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sun, 8 Jan 2017 22:00:18 +0000 (17:00 -0500)
If after too many passes still no image could be emitted, then
swap back to the original program as we do in all other cases
and don't use the one with blinding.

Fixes: 959a75791603 ("bpf, x86: add support for constant blinding")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/x86/net/bpf_jit_comp.c

index e76d1af..bb660e5 100644 (file)
@@ -1172,6 +1172,8 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
                set_memory_ro((unsigned long)header, header->pages);
                prog->bpf_func = (void *)image;
                prog->jited = 1;
+       } else {
+               prog = orig_prog;
        }
 
 out_addrs: