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

Message ID 20181129042833.27376-2-stewart@linux.ibm.com
State Accepted
Headers show
Series
  • Random static analysis fixes
Related show

Checks

Context Check Description
snowpatch_ozlabs/snowpatch_job_snowpatch-skiboot success Test snowpatch/job/snowpatch-skiboot on branch master
snowpatch_ozlabs/apply_patch success master/apply_patch Successfully applied

Commit Message

Stewart Smith Nov. 29, 2018, 4:28 a.m.
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@linux.ibm.com>
---
 core/cpu.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Patch

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)