ARM: 7807/1: kexec: validate CPU hotplug support
authorStephen Warren <swarren@nvidia.com>
Fri, 2 Aug 2013 19:52:49 +0000 (20:52 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 13 Aug 2013 19:23:18 +0000 (20:23 +0100)
commit2103f6cba61a8b8bea3fc1b63661d830a2125e76
treeecc5f6e4df5631932b38e9eb1d8dd7cd8251ed2b
parent00efaa0250939dc148e2d3104fb3c18395d24a2d
ARM: 7807/1: kexec: validate CPU hotplug support

Architectures should fully validate whether kexec is possible as part of
machine_kexec_prepare(), so that user-space's kexec_load() operation can
report any problems. Performing validation in machine_kexec() itself is
too late, since it is not allowed to return.

Prior to this patch, ARM's machine_kexec() was testing after-the-fact
whether machine_kexec_prepare() was able to disable all but one CPU.
Instead, modify machine_kexec_prepare() to validate all conditions
necessary for machine_kexec_prepare()'s to succeed. BUG if the validation
succeeded, yet disabling the CPUs didn't actually work.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/include/asm/smp_plat.h
arch/arm/kernel/machine_kexec.c
arch/arm/kernel/smp.c