+++ /dev/null
-From 914c53dcaea29d0ddb50b4ea448049e04982f337 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 29 Jan 2023 20:04:55 +0100
-Subject: s390/bpf: Add expoline to tail calls
-
-From: Ilya Leoshkevich <iii@linux.ibm.com>
-
-[ Upstream commit bb4ef8fc3d193ed8d5583fb47cbeff5d8fb8302f ]
-
-All the indirect jumps in the eBPF JIT already use expolines, except
-for the tail call one.
-
-Fixes: de5cb6eb514e ("s390: use expoline thunks in the BPF JIT")
-Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
-Link: https://lore.kernel.org/r/20230129190501.1624747-3-iii@linux.ibm.com
-Signed-off-by: Alexei Starovoitov <ast@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/s390/net/bpf_jit_comp.c | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/arch/s390/net/bpf_jit_comp.c b/arch/s390/net/bpf_jit_comp.c
-index 60029baaa72ad..f2b516f8a3a64 100644
---- a/arch/s390/net/bpf_jit_comp.c
-+++ b/arch/s390/net/bpf_jit_comp.c
-@@ -1119,8 +1119,16 @@ static noinline int bpf_jit_insn(struct bpf_jit *jit, struct bpf_prog *fp, int i
- /* lg %r1,bpf_func(%r1) */
- EMIT6_DISP_LH(0xe3000000, 0x0004, REG_1, REG_1, REG_0,
- offsetof(struct bpf_prog, bpf_func));
-- /* bc 0xf,tail_call_start(%r1) */
-- _EMIT4(0x47f01000 + jit->tail_call_start);
-+ if (nospec_uses_trampoline()) {
-+ jit->seen |= SEEN_FUNC;
-+ /* aghi %r1,tail_call_start */
-+ EMIT4_IMM(0xa70b0000, REG_1, jit->tail_call_start);
-+ /* brcl 0xf,__s390_indirect_jump_r1 */
-+ EMIT6_PCREL_RILC(0xc0040000, 0xf, jit->r1_thunk_ip);
-+ } else {
-+ /* bc 0xf,tail_call_start(%r1) */
-+ _EMIT4(0x47f01000 + jit->tail_call_start);
-+ }
- /* out: */
- jit->labels[0] = jit->prg;
- break;
---
-2.39.2
-