Le 05/08/2025 à 08:27, Saket Kumar Bhaskar a écrit :
bpf_jit_emit_probe_mem_store() is introduced to emit instructions for storing memory values depending on the size (byte, halfword, word, doubleword).
Build break with this patch
CC arch/powerpc/net/bpf_jit_comp64.o arch/powerpc/net/bpf_jit_comp64.c:395:12: error: 'bpf_jit_emit_probe_mem_store' defined but not used [-Werror=unused-function] static int bpf_jit_emit_probe_mem_store(struct codegen_context *ctx, u32 src_reg, s16 off, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[4]: *** [scripts/Makefile.build:287: arch/powerpc/net/bpf_jit_comp64.o] Error 1
Signed-off-by: Saket Kumar Bhaskar skb99@linux.ibm.com
arch/powerpc/net/bpf_jit_comp64.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+)
diff --git a/arch/powerpc/net/bpf_jit_comp64.c b/arch/powerpc/net/bpf_jit_comp64.c index 025524378443..489de21fe3d6 100644 --- a/arch/powerpc/net/bpf_jit_comp64.c +++ b/arch/powerpc/net/bpf_jit_comp64.c @@ -409,6 +409,36 @@ asm ( " blr ;" ); +static int bpf_jit_emit_probe_mem_store(struct codegen_context *ctx, u32 src_reg, s16 off,
u32 code, u32 *image)+{
- u32 tmp1_reg = bpf_to_ppc(TMP_REG_1);
- u32 tmp2_reg = bpf_to_ppc(TMP_REG_2);
- switch (BPF_SIZE(code)) {
- case BPF_B:
EMIT(PPC_RAW_STB(src_reg, tmp1_reg, off));break;- case BPF_H:
EMIT(PPC_RAW_STH(src_reg, tmp1_reg, off));break;- case BPF_W:
EMIT(PPC_RAW_STW(src_reg, tmp1_reg, off));break;- case BPF_DW:
if (off % 4) {EMIT(PPC_RAW_LI(tmp2_reg, off));EMIT(PPC_RAW_STDX(src_reg, tmp1_reg, tmp2_reg));} else {EMIT(PPC_RAW_STD(src_reg, tmp1_reg, off));}break;- default:
return -EINVAL;- }
- return 0;
+}
- static int emit_atomic_ld_st(const struct bpf_insn insn, struct codegen_context *ctx, u32 *image) { u32 code = insn.code;