ARM: 7807/1: kexec: validate CPU hotplug support
authorStephen Warren <[email protected]>
Fri, 2 Aug 2013 19:52:49 +0000 (20:52 +0100)
committerRussell King <[email protected]>
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 <[email protected]>
Acked-by: "Eric W. Biederman" <[email protected]>
Signed-off-by: Russell King <[email protected]>
arch/arm/include/asm/smp_plat.h
arch/arm/kernel/machine_kexec.c
arch/arm/kernel/smp.c