s390/bpf: Use bcr 0,%0 as tail call nop filler
authorIlya Leoshkevich <iii@linux.ibm.com>
Tue, 2 Jun 2020 17:45:55 +0000 (19:45 +0200)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 2 Jun 2020 19:04:04 +0000 (21:04 +0200)
Currently used 0x0000 filler confuses bfd disassembler, making bpftool
prog dump xlated output nearly useless. Fix by using a real instruction.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20200602174555.2501389-1-iii@linux.ibm.com
arch/s390/net/bpf_jit_comp.c

index 0f37a1b..f4242b8 100644 (file)
@@ -503,7 +503,8 @@ static void bpf_jit_prologue(struct bpf_jit *jit, u32 stack_depth)
        } else {
                /* j tail_call_start: NOP if no tail calls are used */
                EMIT4_PCREL(0xa7f40000, 6);
-               _EMIT2(0);
+               /* bcr 0,%0 */
+               EMIT2(0x0700, 0, REG_0);
        }
        /* Tail calls have to skip above initialization */
        jit->tail_call_start = jit->prg;