diff options
author | Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> | 2021-10-06 01:55:20 +0530 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2021-10-07 18:52:33 +1100 |
commit | 4549c3ea3160fa8b3f37dfe2f957657bb265eda9 (patch) | |
tree | 7c483a082777354694a7488ba5e5de32e9e5bbc5 /arch/powerpc/net | |
parent | 23c216b335d1fbd716076e8263b54a714ea3cf0e (diff) | |
download | linux-4549c3ea3160fa8b3f37dfe2f957657bb265eda9.tar.gz linux-4549c3ea3160fa8b3f37dfe2f957657bb265eda9.tar.bz2 linux-4549c3ea3160fa8b3f37dfe2f957657bb265eda9.zip |
powerpc/lib: Add helper to check if offset is within conditional branch range
Add a helper to check if a given offset is within the branch range for a
powerpc conditional branch instruction, and update some sites to use the
new helper.
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Acked-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/442b69a34ced32ca346a0d9a855f3f6cfdbbbd41.1633464148.git.naveen.n.rao@linux.vnet.ibm.com
Diffstat (limited to 'arch/powerpc/net')
-rw-r--r-- | arch/powerpc/net/bpf_jit.h | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/arch/powerpc/net/bpf_jit.h b/arch/powerpc/net/bpf_jit.h index 99fad093f43e..935ea95b6635 100644 --- a/arch/powerpc/net/bpf_jit.h +++ b/arch/powerpc/net/bpf_jit.h @@ -78,11 +78,6 @@ #define PPC_FUNC_ADDR(d,i) do { PPC_LI32(d, i); } while(0) #endif -static inline bool is_nearbranch(int offset) -{ - return (offset < 32768) && (offset >= -32768); -} - /* * The fly in the ointment of code size changing from pass to pass is * avoided by padding the short branch case with a NOP. If code size differs @@ -91,7 +86,7 @@ static inline bool is_nearbranch(int offset) * state. */ #define PPC_BCC(cond, dest) do { \ - if (is_nearbranch((dest) - (ctx->idx * 4))) { \ + if (is_offset_in_cond_branch_range((long)(dest) - (ctx->idx * 4))) { \ PPC_BCC_SHORT(cond, dest); \ EMIT(PPC_RAW_NOP()); \ } else { \ |