Thread (8 messages) flat view 8 messages, 3 authors, 7d ago

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__
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help