arm64: Honor nosmp kernel command line option
Passing "nosmp" should boot the kernel with a single processor, without provision to enable secondary CPUs even if they are present. "nosmp" is implemented by setting maxcpus=0. At the moment we still mark the secondary CPUs present even with nosmp, which allows the userspace to bring them up. This patch corrects the smp_prepare_cpus() to honor the maxcpus == 0. Commit44dbcc93ab
("arm64: Fix behavior of maxcpus=N") fixed the behavior for maxcpus >= 1, but broke maxcpus = 0. Fixes:44dbcc93ab
("arm64: Fix behavior of maxcpus=N") Cc: <stable@vger.kernel.org> # 4.7+ Cc: Will Deacon <will.deacon@arm.com> Cc: James Morse <james.morse@arm.com> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> Acked-by: Mark Rutland <mark.rutland@arm.com> [catalin.marinas@arm.com: updated code comment] Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
parent
9113c2aa05
commit
e75118a7b5
|
@ -692,6 +692,13 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
|
|||
|
||||
smp_store_cpu_info(smp_processor_id());
|
||||
|
||||
/*
|
||||
* If UP is mandated by "nosmp" (which implies "maxcpus=0"), don't set
|
||||
* secondary CPUs present.
|
||||
*/
|
||||
if (max_cpus == 0)
|
||||
return;
|
||||
|
||||
/*
|
||||
* Initialise the present map (which describes the set of CPUs
|
||||
* actually populated at the present time) and release the
|
||||
|
|
Loading…
Reference in New Issue