s390/bpf: Remove JITed image size limitations
authorIlya Leoshkevich <iii@linux.ibm.com>
Mon, 18 Nov 2019 18:03:40 +0000 (19:03 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 19 Nov 2019 03:51:16 +0000 (19:51 -0800)
Now that jump and long displacement ranges are no longer a problem,
remove the limit on JITed image size. In practice it's still limited by
2G, but with verifier allowing "only" 1M instructions, it's not an
issue.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20191118180340.68373-7-iii@linux.ibm.com
arch/s390/net/bpf_jit_comp.c

index 3398cd9..8d21341 100644 (file)
@@ -52,8 +52,6 @@ struct bpf_jit {
        int labels[1];          /* Labels for local jumps */
 };
 
-#define BPF_SIZE_MAX   0xffff  /* Max size for program (16 bit branches) */
-
 #define SEEN_MEM       BIT(0)          /* use mem[] for temporary storage */
 #define SEEN_LITERAL   BIT(1)          /* code uses literals */
 #define SEEN_FUNC      BIT(2)          /* calls C functions */
@@ -1631,11 +1629,6 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *fp)
        /*
         * Final pass: Allocate and generate program
         */
-       if (jit.size >= BPF_SIZE_MAX) {
-               fp = orig_fp;
-               goto free_addrs;
-       }
-
        header = bpf_jit_binary_alloc(jit.size, &jit.prg_buf, 8, jit_fill_hole);
        if (!header) {
                fp = orig_fp;