riscv: cpufeature: detect RISCV_ALTERNATIVES_EARLY_BOOT earlier
authorJisheng Zhang <jszhang@kernel.org>
Sat, 28 Jan 2023 17:28:45 +0000 (01:28 +0800)
committerPalmer Dabbelt <palmer@rivosinc.com>
Wed, 1 Feb 2023 07:29:34 +0000 (23:29 -0800)
Currently riscv_cpufeature_patch_func() does nothing at the
RISCV_ALTERNATIVES_EARLY_BOOT stage. Add a check to detect whether we
are in this stage and exit early. This will allow us to use
riscv_cpufeature_patch_func() for scanning of all ISA extensions.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20230128172856.3814-3-jszhang@kernel.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/kernel/cpufeature.c

index 62443fd32fa74fc3f909a499b1b1aa7b2d1ada00..59e20cad1b3dc9c2b4a9c94ef2e0cfa3ef00069a 100644 (file)
@@ -330,6 +330,9 @@ void __init_or_module riscv_cpufeature_patch_func(struct alt_entry *begin,
        struct alt_entry *alt;
        u32 tmp;
 
+       if (stage == RISCV_ALTERNATIVES_EARLY_BOOT)
+               return;
+
        for (alt = begin; alt < end; alt++) {
                if (alt->vendor_id != 0)
                        continue;