arch/powerpc/net/bpf_jit_comp64.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
Without this, the compiler (clang21) might emit a warning under W=1
because the variable ori31_emitted is set but never used if
CONFIG_PPC_BOOK3S_64=n.
Without this patch:
$ make -j $(nproc) W=1 ARCH=powerpc SHELL=/bin/bash arch/powerpc/net
[...]
CC arch/powerpc/net/bpf_jit_comp.o
CC arch/powerpc/net/bpf_jit_comp64.o
../arch/powerpc/net/bpf_jit_comp64.c: In function 'bpf_jit_build_body':
../arch/powerpc/net/bpf_jit_comp64.c:417:28: warning: variable 'ori31_emitted' set but not used [-Wunused-but-set-variable]
417 | bool sync_emitted, ori31_emitted;
| ^~~~~~~~~~~~~
AR arch/powerpc/net/built-in.a
With this patch:
[...]
CC arch/powerpc/net/bpf_jit_comp.o
CC arch/powerpc/net/bpf_jit_comp64.o
AR arch/powerpc/net/built-in.a
Fixes: dff883d9e93a ("bpf, arm64, powerpc: Change nospec to include v1 barrier")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202506180402.uUXwVoSH-lkp@intel.com/
Signed-off-by: Luis Gerhorst <luis.gerhorst@fau.de>
---
arch/powerpc/net/bpf_jit_comp64.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/arch/powerpc/net/bpf_jit_comp64.c b/arch/powerpc/net/bpf_jit_comp64.c
index 3665ff8bb4bc..a25a6ffe7d7c 100644
--- a/arch/powerpc/net/bpf_jit_comp64.c
+++ b/arch/powerpc/net/bpf_jit_comp64.c
@@ -820,13 +820,12 @@ int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, u32 *fimage, struct code
case BPF_ST | BPF_NOSPEC:
sync_emitted = false;
ori31_emitted = false;
-#ifdef CONFIG_PPC_E500
- if (!bpf_jit_bypass_spec_v1()) {
+ if (IS_ENABLED(CONFIG_PPC_E500) &&
+ !bpf_jit_bypass_spec_v1()) {
EMIT(PPC_RAW_ISYNC());
EMIT(PPC_RAW_SYNC());
sync_emitted = true;
}
-#endif
if (!bpf_jit_bypass_spec_v4()) {
switch (stf_barrier) {
case STF_BARRIER_EIEIO:
@@ -849,10 +848,10 @@ int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, u32 *fimage, struct code
break;
}
}
-#ifdef CONFIG_PPC_BOOK3S_64
- if (!bpf_jit_bypass_spec_v1() && !ori31_emitted)
+ if (IS_ENABLED(CONFIG_PPC_BOOK3S_64) &&
+ !bpf_jit_bypass_spec_v1() &&
+ !ori31_emitted)
EMIT(PPC_RAW_ORI(_R31, _R31, 0));
-#endif
break;
/*
base-commit: cd7312a78f36e981939abe1cd1f21d355e083dfe
--
2.49.0
Le 19/06/2025 à 16:26, Luis Gerhorst a écrit : > Without this, the compiler (clang21) might emit a warning under W=1 > because the variable ori31_emitted is set but never used if > CONFIG_PPC_BOOK3S_64=n. > > Without this patch: > > $ make -j $(nproc) W=1 ARCH=powerpc SHELL=/bin/bash arch/powerpc/net > [...] > CC arch/powerpc/net/bpf_jit_comp.o > CC arch/powerpc/net/bpf_jit_comp64.o > ../arch/powerpc/net/bpf_jit_comp64.c: In function 'bpf_jit_build_body': > ../arch/powerpc/net/bpf_jit_comp64.c:417:28: warning: variable 'ori31_emitted' set but not used [-Wunused-but-set-variable] > 417 | bool sync_emitted, ori31_emitted; > | ^~~~~~~~~~~~~ > AR arch/powerpc/net/built-in.a > > With this patch: > > [...] > CC arch/powerpc/net/bpf_jit_comp.o > CC arch/powerpc/net/bpf_jit_comp64.o > AR arch/powerpc/net/built-in.a > > Fixes: dff883d9e93a ("bpf, arm64, powerpc: Change nospec to include v1 barrier") > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202506180402.uUXwVoSH-lkp@intel.com/ > Signed-off-by: Luis Gerhorst <luis.gerhorst@fau.de> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu> > --- > arch/powerpc/net/bpf_jit_comp64.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/arch/powerpc/net/bpf_jit_comp64.c b/arch/powerpc/net/bpf_jit_comp64.c > index 3665ff8bb4bc..a25a6ffe7d7c 100644 > --- a/arch/powerpc/net/bpf_jit_comp64.c > +++ b/arch/powerpc/net/bpf_jit_comp64.c > @@ -820,13 +820,12 @@ int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, u32 *fimage, struct code > case BPF_ST | BPF_NOSPEC: > sync_emitted = false; > ori31_emitted = false; > -#ifdef CONFIG_PPC_E500 > - if (!bpf_jit_bypass_spec_v1()) { > + if (IS_ENABLED(CONFIG_PPC_E500) && > + !bpf_jit_bypass_spec_v1()) { > EMIT(PPC_RAW_ISYNC()); > EMIT(PPC_RAW_SYNC()); > sync_emitted = true; > } > -#endif > if (!bpf_jit_bypass_spec_v4()) { > switch (stf_barrier) { > case STF_BARRIER_EIEIO: > @@ -849,10 +848,10 @@ int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, u32 *fimage, struct code > break; > } > } > -#ifdef CONFIG_PPC_BOOK3S_64 > - if (!bpf_jit_bypass_spec_v1() && !ori31_emitted) > + if (IS_ENABLED(CONFIG_PPC_BOOK3S_64) && > + !bpf_jit_bypass_spec_v1() && > + !ori31_emitted) > EMIT(PPC_RAW_ORI(_R31, _R31, 0)); > -#endif > break; > > /* > > base-commit: cd7312a78f36e981939abe1cd1f21d355e083dfe
© 2016 - 2025 Red Hat, Inc.