riscv: cpufeature: Fix extension subset checking
authorCharlie Jenkins <charlie@rivosinc.com>
Fri, 3 May 2024 04:50:51 +0000 (21:50 -0700)
committerPalmer Dabbelt <palmer@rivosinc.com>
Wed, 22 May 2024 16:41:03 +0000 (09:41 -0700)
This loop is supposed to check if ext->subset_ext_ids[j] is valid, rather
than if ext->subset_ext_ids[i] is valid, before setting the extension
id ext->subset_ext_ids[j] in isainfo->isa.

Signed-off-by: Charlie Jenkins <charlie@rivosinc.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Fixes: 0d8295ed975b ("riscv: add ISA extension parsing for scalar crypto")
Link: https://lore.kernel.org/r/20240502-cpufeature_fixes-v4-2-b3d1a088722d@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/kernel/cpufeature.c

index 13d4fc0d1817ec048951a09d14eaf17cd5da2f9f..5ef48cb20ee119eceb82c71db65f86fe683c58b6 100644 (file)
@@ -603,7 +603,7 @@ static int __init riscv_fill_hwcap_from_ext_list(unsigned long *isa2hwcap)
 
                        if (ext->subset_ext_size) {
                                for (int j = 0; j < ext->subset_ext_size; j++) {
-                                       if (riscv_isa_extension_check(ext->subset_ext_ids[i]))
+                                       if (riscv_isa_extension_check(ext->subset_ext_ids[j]))
                                                set_bit(ext->subset_ext_ids[j], isainfo->isa);
                                }
                        }