Message ID | 20190424214801.18880-3-atish.patra@wdc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Miscellaneous kernel command line fixes | expand |
On Wed, Apr 24, 2019 at 02:47:59PM -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.patra@wdc.com> > Reviewed-by: Christoph Hellwig <hch@lst.de> I just noticed RISC-V has CONFIG_SMP option configurable. ARM64 has it always on and no option to disable :) Anyways, this looks good. Reviewed-by: Sudeep Holla <sudeep.holla@arm.com> -- Regards, Sudeep
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); + } } void __init setup_smp(void) @@ -74,7 +85,6 @@ void __init setup_smp(void) cpuid_to_hartid_map(cpuid) = hart; set_cpu_possible(cpuid, true); - set_cpu_present(cpuid, true); cpuid++; }