On Wed, Feb 9, 2022 at 4:39 AM Heiko Stuebner <heiko@xxxxxxxxx> wrote: > > Move the application of boot alternatives to soc_early_init(). > This allows to catch more generic cases of code needing patches > than doing it in smp_prepare_boot_cpu() and also makes it actually > work if CONFIG_SMP is disabled for whatever reason. > > The position is chosen mainly as it is before the actual soc early > init runs but also already allows accessing the devicetree > via fdt_* functions. > > Signed-off-by: Heiko Stuebner <heiko@xxxxxxxxx> > --- > arch/riscv/kernel/head.S | 2 ++ > arch/riscv/kernel/smpboot.c | 2 -- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/riscv/kernel/head.S b/arch/riscv/kernel/head.S > index 2363b43312fc..0e1bb97f9749 100644 > --- a/arch/riscv/kernel/head.S > +++ b/arch/riscv/kernel/head.S > @@ -10,6 +10,7 @@ > #include <asm/thread_info.h> > #include <asm/page.h> > #include <asm/pgtable.h> > +#include <asm/alternative.h> > #include <asm/csr.h> > #include <asm/cpu_ops_sbi.h> > #include <asm/hwcap.h> > @@ -341,6 +342,7 @@ clear_bss_done: > call kasan_early_init > #endif > /* Start the kernel */ > + call apply_boot_alternatives Do you really need this early ? if non-smp configuration is the only option, Can you do it in setup_arch() after riscv_fill_hwcap() is called ? By doing that, we can unify the cpu feature probing and you don't need a separate DT parsing just for svpbmt. > call soc_early_init > tail start_kernel > > diff --git a/arch/riscv/kernel/smpboot.c b/arch/riscv/kernel/smpboot.c > index a6d13dca1403..f1e4948a4b52 100644 > --- a/arch/riscv/kernel/smpboot.c > +++ b/arch/riscv/kernel/smpboot.c > @@ -32,7 +32,6 @@ > #include <asm/sections.h> > #include <asm/sbi.h> > #include <asm/smp.h> > -#include <asm/alternative.h> > > #include "head.h" > > @@ -41,7 +40,6 @@ static DECLARE_COMPLETION(cpu_running); > void __init smp_prepare_boot_cpu(void) > { > init_cpu_topology(); > - apply_boot_alternatives(); > } > > void __init smp_prepare_cpus(unsigned int max_cpus) > -- > 2.30.2 > > > _______________________________________________ > linux-riscv mailing list > linux-riscv@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-riscv -- Regards, Atish