[Skiboot] [PATCH 1/8] core/cpu.c: avoid container_of(NULL) in next_cpu()

Stewart Smith stewart at linux.ibm.com
Thu Nov 29 15:28:26 AEDT 2018


A certain finicky static analysis tool did point out that we were
operating on a value that could be null (and since first_cpu() calls
next_cpu(NULL) to get the first one, it also gets to be complained about
as next_cpu() could act on that NULL pointer).

So, rework things to shut the static analysis tool up, when in fact this
was never a problem.

Signed-off-by: Stewart Smith <stewart at linux.ibm.com>
---
 core/cpu.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/core/cpu.c b/core/cpu.c
index 4f518a4c10b2..a83f8baf1031 100644
--- a/core/cpu.c
+++ b/core/cpu.c
@@ -739,13 +739,13 @@ struct cpu_thread *find_cpu_by_server(u32 server_no)
 
 struct cpu_thread *next_cpu(struct cpu_thread *cpu)
 {
-	struct cpu_stack *s = container_of(cpu, struct cpu_stack, cpu);
-	unsigned int index;
+	struct cpu_stack *s;
+	unsigned int index = 0;
 
-	if (cpu == NULL)
-		index = 0;
-	else
+	if (cpu != NULL) {
+		s = container_of(cpu, struct cpu_stack, cpu);
 		index = s - cpu_stacks + 1;
+	}
 	for (; index <= cpu_max_pir; index++) {
 		cpu = &cpu_stacks[index].cpu;
 		if (cpu->state != cpu_state_no_cpu)
-- 
2.19.2



More information about the Skiboot mailing list