mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-12-18 08:36:21 +01:00
riscv: hwprobe: avoid uninitialized variable use in hwprobe_arch_id()
Resolve this smatch warning:
arch/riscv/kernel/sys_hwprobe.c:50 hwprobe_arch_id() error: uninitialized symbol 'cpu_id'.
This could happen if hwprobe_arch_id() was called with a key ID of
something other than MVENDORID, MIMPID, and MARCHID. This does not
happen in the current codebase. The only caller of hwprobe_arch_id()
is a function that only passes one of those three key IDs.
For the sake of reducing static analyzer warning noise, and in the
unlikely event that hwprobe_arch_id() is someday called with some
other key ID, validate hwprobe_arch_id()'s input to ensure that
'cpu_id' is always initialized before use.
Fixes: ea3de9ce8a ("RISC-V: Add a syscall for HW probing")
Cc: Evan Green <evan@rivosinc.com>
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Link: https://lore.kernel.org/r/cf5a13ec-19d0-9862-059b-943f36107bf3@kernel.org
This commit is contained in:
parent
2dc99ea272
commit
b7776a802f
|
|
@ -31,6 +31,11 @@ static void hwprobe_arch_id(struct riscv_hwprobe *pair,
|
|||
bool first = true;
|
||||
int cpu;
|
||||
|
||||
if (pair->key != RISCV_HWPROBE_KEY_MVENDORID &&
|
||||
pair->key != RISCV_HWPROBE_KEY_MIMPID &&
|
||||
pair->key != RISCV_HWPROBE_KEY_MARCHID)
|
||||
goto out;
|
||||
|
||||
for_each_cpu(cpu, cpus) {
|
||||
u64 cpu_id;
|
||||
|
||||
|
|
@ -61,6 +66,7 @@ static void hwprobe_arch_id(struct riscv_hwprobe *pair,
|
|||
}
|
||||
}
|
||||
|
||||
out:
|
||||
pair->value = id;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user