From: Ilya Leoshkevich <iii@linux.ibm.com>
Subject: s390/bpf: Fix branch shortening during codegen pass
Patch-mainline: Not yet, embargoed
References: bsc#1190601
Signed-off-by: Tony Jones <tonyj@suse.de>
---
arch/s390/net/bpf_jit_comp.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
--- a/arch/s390/net/bpf_jit_comp.c
+++ a/arch/s390/net/bpf_jit_comp.c
@@ -248,8 +248,7 @@ static inline void reg_set_seen(struct bpf_jit *jit, u32 b1)
#define EMIT6_PCREL(op1, op2, b1, b2, i, off, mask) \
({ \
- /* Branch instruction needs 6 bytes */ \
- int rel = (addrs[(i) + (off) + 1] - (addrs[(i) + 1] - 6)) / 2;\
+ int rel = (addrs[(i) + (off) + 1] - jit->prg) / 2; \
_EMIT6((op1) | reg(b1, b2) << 16 | (rel & 0xffff), (op2) | (mask));\
REG_SET_SEEN(b1); \
REG_SET_SEEN(b2); \
--