4.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Martin Schwidefsky <schwidef...@de.ibm.com>

commit 26f843848bae973817b3587780ce6b7b0200d3e4 upstream.

For machines without the exrl instruction the BFP jit generates
code that uses an "br %r1" instruction located in the lowcore page.
Unfortunately there is a cut & paste error that puts an additional
"larl %r1,.+14" instruction in the code that clobbers the branch
target address in %r1. Remove the larl instruction.

Cc: <sta...@vger.kernel.org> # v4.17+
Fixes: de5cb6eb51 ("s390: use expoline thunks in the BPF JIT")
Signed-off-by: Martin Schwidefsky <schwidef...@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

---
 arch/s390/net/bpf_jit_comp.c |    2 --
 1 file changed, 2 deletions(-)

--- a/arch/s390/net/bpf_jit_comp.c
+++ b/arch/s390/net/bpf_jit_comp.c
@@ -485,8 +485,6 @@ static void bpf_jit_epilogue(struct bpf_
                        /* br %r1 */
                        _EMIT2(0x07f1);
                } else {
-                       /* larl %r1,.+14 */
-                       EMIT6_PCREL_RILB(0xc0000000, REG_1, jit->prg + 14);
                        /* ex 0,S390_lowcore.br_r1_tampoline */
                        EMIT4_DISP(0x44000000, REG_0, REG_0,
                                   offsetof(struct lowcore, br_r1_trampoline));


Reply via email to