]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
riscv: cpufeature: avoid uninitialized variable in has_thead_homogeneous_vlenb()
authorPaul Walmsley <pjw@kernel.org>
Sat, 18 Oct 2025 06:31:11 +0000 (00:31 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Oct 2025 13:10:22 +0000 (14:10 +0100)
commit 2dc99ea2727640b2fe12f9aa0e38ea2fc3cbb92d upstream.

In has_thead_homogeneous_vlenb(), smatch detected that the vlenb variable
could be used while uninitialized.  It appears that this could happen if
no CPUs described in DT have the "thead,vlenb" property.

Fix by initializing vlenb to 0, which will keep thead_vlenb_of set to 0
(as it was statically initialized).  This in turn will cause
riscv_v_setup_vsize() to fall back to CSR probing - the desired result if
thead,vlenb isn't provided in the DT data.

While here, fix a nearby comment typo.

Cc: stable@vger.kernel.org
Cc: Charlie Jenkins <charlie@rivosinc.com>
Fixes: 377be47f90e41 ("riscv: vector: Use vlenb from DT for thead")
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Link: https://lore.kernel.org/r/22674afb-2fe8-2a83-1818-4c37bd554579@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/riscv/kernel/cpufeature.c

index 67b59699357da8010db919b4ea2c24cd0d51182a..72ca768f4e9191dbe08271736fe9ea7d8e24b70b 100644 (file)
@@ -932,9 +932,9 @@ static int has_thead_homogeneous_vlenb(void)
 {
        int cpu;
        u32 prev_vlenb = 0;
-       u32 vlenb;
+       u32 vlenb = 0;
 
-       /* Ignore thead,vlenb property if xtheavector is not enabled in the kernel */
+       /* Ignore thead,vlenb property if xtheadvector is not enabled in the kernel */
        if (!IS_ENABLED(CONFIG_RISCV_ISA_XTHEADVECTOR))
                return 0;