From: Max Krasnyansky <maxk@xxxxxxxxxxxx>
For some reason we had redundant parsers registered for maxcpus=. One in init/main.c and another in arch/x86/smpboot.c
So I nuked the one in arch/x86.
Also 64-bit kernels used to handle maxcpus= as documented in
Documentation/cpu-hotplug.txt. CPUs with 'id > maxcpus' are initialized
but not booted. 32-bit version for some reason ignored them even though
all the infrastructure for booting them later is there.
In the current mainline both 64 and 32 bit versions are broken. I'm
too lazy to look through git history but I'm guessing it happened as
part of the i386 and x86_64 unification.
This patch restores the correct behaviour. I've tested x86_64 version on
4- and 8- way Core2 and 2-way Opteron based machines. Various config
combinations SMP, !SMP, CPU_HOTPLUG, !CPU_HOTPLUG.
Booted with maxcpus=1 and maxcpus=4, etc. Everything is working as expected.
I cannot test 32-bit version (no 32-bit machines here).
Signed-off-by: Max Krasnyansky <maxk@xxxxxxxxxxxx>
Cc: lizf@xxxxxxxxxxxxxx
Cc: jeff.chua.linux@xxxxxxxxx