stable-rc 5.4 build failed due this patch. - powerpc gcc-10-defconfig - FAILED - powerpc gcc-11-defconfig - FAILED - powerpc gcc-8-defconfig - FAILED - powerpc gcc-9-defconfig - FAILED
On Mon, 11 Oct 2021 at 19:28, Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
From: Naveen N. Rao naveen.n.rao@linux.vnet.ibm.com
[ Upstream commit 8bbc9d822421d9ac8ff9ed26a3713c9afc69d6c8 ]
Only ignore the operation if dividing by 1.
Fixes: 156d0e290e969c ("powerpc/ebpf/jit: Implement JIT compiler for extended BPF") Signed-off-by: Naveen N. Rao naveen.n.rao@linux.vnet.ibm.com Tested-by: Johan Almbladh johan.almbladh@anyfinetworks.com Reviewed-by: Christophe Leroy christophe.leroy@csgroup.eu Acked-by: Song Liu songliubraving@fb.com Acked-by: Johan Almbladh johan.almbladh@anyfinetworks.com Signed-off-by: Michael Ellerman mpe@ellerman.id.au Link: https://lore.kernel.org/r/c674ca18c3046885602caebb326213731c675d06.163346414... Signed-off-by: Sasha Levin sashal@kernel.org
arch/powerpc/net/bpf_jit_comp64.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/net/bpf_jit_comp64.c b/arch/powerpc/net/bpf_jit_comp64.c index 658ca2bab13c..e79f9eae2bc0 100644 --- a/arch/powerpc/net/bpf_jit_comp64.c +++ b/arch/powerpc/net/bpf_jit_comp64.c @@ -408,8 +408,14 @@ static int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, case BPF_ALU64 | BPF_DIV | BPF_K: /* dst /= imm */ if (imm == 0) return -EINVAL;
else if (imm == 1)
goto bpf_alu32_trunc;
if (imm == 1) {
if (BPF_OP(code) == BPF_DIV) {
goto bpf_alu32_trunc;
} else {
EMIT(PPC_RAW_LI(dst_reg, 0));
In file included from arch/powerpc/net/bpf_jit64.h:11, from arch/powerpc/net/bpf_jit_comp64.c:19: arch/powerpc/net/bpf_jit_comp64.c: In function 'bpf_jit_build_body': arch/powerpc/net/bpf_jit_comp64.c:415:46: error: implicit declaration of function 'PPC_RAW_LI'; did you mean 'PPC_RLWIMI'? [-Werror=implicit-function-declaration] 415 | EMIT(PPC_RAW_LI(dst_reg, 0)); | ^~~~~~~~~~ arch/powerpc/net/bpf_jit.h:32:34: note: in definition of macro 'PLANT_INSTR' 32 | do { if (d) { (d)[idx] = instr; } idx++; } while (0) | ^~~~~ arch/powerpc/net/bpf_jit_comp64.c:415:41: note: in expansion of macro 'EMIT' 415 | EMIT(PPC_RAW_LI(dst_reg, 0)); | ^~~~ cc1: all warnings being treated as errors
Reported-by: Linux Kernel Functional Testing lkft@linaro.org