Re: [PATCH 2/2] powerpc/sstep: Don’t define variables we won’t be using
From: "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
Date: 2026-07-30 06:24:46
Also in:
lkml
Le 29/07/2026 à 22:49, Link Mauve a écrit :
It seems this function has only compiled without warnings on PPC64, not on PowerPC, so before this commit it would fail with:../arch/powerpc/lib/sstep.c: In function 'analyse_instr': ../arch/powerpc/lib/sstep.c:1350:28: error: variable 'suffix' set but not used [-Werror=unused-but-set-variable] 1350 | unsigned int word, suffix; | ^~~~~~ ../arch/powerpc/lib/sstep.c:1346:38: error: variable 'rc' set but not used [-Werror=unused-but-set-variable] 1346 | unsigned int opcode, ra, rb, rc, rd, spr, u; | ^~ cc1: all warnings being treated as errors
I'm surprised we still have this issue. I remember seeing it reported several times allthough I've not been able to spot when. By the way on my side it happens only when I do a W=1 build. Same as previous patch, I'd prefer using CONFIG_PPC64 instead of __powerpc64__
quoted hunk ↗ jump to hunk
Signed-off-by: Link Mauve <redacted> --- arch/powerpc/lib/sstep.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c index 597a0d841fe8..c866e4337f94 100644 --- a/arch/powerpc/lib/sstep.c +++ b/arch/powerpc/lib/sstep.c@@ -1342,16 +1342,20 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs, { #ifdef __powerpc64__ unsigned int suffixopcode, prefixtype, prefix_r; + unsigned int rc; + unsigned int suffix;
A single line would be enough: unsigned int rc, suffix;
quoted hunk ↗ jump to hunk
#endif - unsigned int opcode, ra, rb, rc, rd, spr, u; + unsigned int opcode, ra, rb, rd, spr, u; unsigned long int imm; unsigned long int val, val2; unsigned int mb, me, sh; - unsigned int word, suffix; + unsigned int word; long ival; word = ppc_inst_val(instr); +#ifdef __powerpc64__ suffix = ppc_inst_suffix(instr); +#endif op->type = COMPUTE;@@ -1469,7 +1473,9 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs, rd = (word >> 21) & 0x1f; ra = (word >> 16) & 0x1f; rb = (word >> 11) & 0x1f; +#ifdef __powerpc64__ rc = (word >> 6) & 0x1f; +#endif switch (opcode) { #ifdef __powerpc64__