diff options
author | Stewart Smith <stewart@linux.ibm.com> | 2018-11-29 15:28:26 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.ibm.com> | 2018-12-10 22:21:12 -0600 |
commit | 5ebb15d265bdd95ce2f151d05ee7ed84caefa647 (patch) | |
tree | 22ac2d77ecf6c7d48af94faaa22154cc7f624913 | |
parent | b2e120fa5b0e5c9b03752d416b183a0361b31cfd (diff) | |
download | skiboot-5ebb15d265bdd95ce2f151d05ee7ed84caefa647.zip skiboot-5ebb15d265bdd95ce2f151d05ee7ed84caefa647.tar.gz skiboot-5ebb15d265bdd95ce2f151d05ee7ed84caefa647.tar.bz2 |
core/cpu.c: avoid container_of(NULL) in next_cpu()
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>
-rw-r--r-- | core/cpu.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -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) |