On Wed, Apr 10, 2019 at 04:04:42PM -0700, Atish Patra wrote: > nosmp command line option sets max_cpus to zero. No secondary harts > will boot if this is enabled. But present cpu mask will still point to > all possible masks. > > Fix present cpu mask for nosmp usecase. > > Signed-off-by: Atish Patra <atish.pa...@wdc.com> > --- > arch/riscv/kernel/smpboot.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/arch/riscv/kernel/smpboot.c b/arch/riscv/kernel/smpboot.c > index eb533b5c2c8c..a8ad200581aa 100644 > --- a/arch/riscv/kernel/smpboot.c > +++ b/arch/riscv/kernel/smpboot.c > @@ -47,6 +47,17 @@ void __init smp_prepare_boot_cpu(void) > > void __init smp_prepare_cpus(unsigned int max_cpus) > { > + int cpuid; > + > + /* This covers non-smp usecase mandated by "nosmp" option */ > + if (max_cpus == 0) > + return; > + > + for_each_possible_cpu(cpuid) { > + if (cpuid == smp_processor_id()) > + continue; > + set_cpu_present(cpuid, true); > + }
Most other architectures seem to use init_cpu_present() here. Otherwise this looks fine to me.