On 06/16/2014 01:06 PM, Aaro Koskinen wrote:
Disable SMP if the bootloader version is incorrect for HOTPLUG_CPU. Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxx>
NAK to this one.
--- arch/mips/cavium-octeon/smp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c index ea96930..71f5505 100644 --- a/arch/mips/cavium-octeon/smp.c +++ b/arch/mips/cavium-octeon/smp.c @@ -88,8 +88,10 @@ static void octeon_smp_hotplug_setup(void) return; labi = (struct linux_app_boot_info *)PHYS_TO_XKSEG_CACHED(LABI_ADDR_IN_BOOTLOADER); - if (labi->labi_signature != LABI_SIGNATURE) - panic("The bootloader version on this board is incorrect."); + if (labi->labi_signature != LABI_SIGNATURE) { + setup_max_cpus = 0; + WARN(1, "Disabling SMP - the bootloader version on this board does not support HOTPLUG_CPU."); + }
We really want to allow SMP, but just disable hot-plugging in the case that the bootloader magic is missing. This is not what setup_max_cpus is for.
I would prefer to see a separate variable that indicated ability to hot-plug, and have that be used to gate both the watchdog things as well as octeon_cpu_disable().
octeon_bootloader_entry_addr = labi->InitTLBStart_addr; #endif