powerpc/smp: soft-replugged CPUs must go back to start_secondary
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 10 Feb 2011 07:45:24 +0000 (18:45 +1100)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 1 Apr 2011 04:37:09 +0000 (15:37 +1100)
commitfa3f82c8bb7acbe049ea71f258b3ae0a33d9d40b
tree9c5e71195c7948c139ea37d8d0e0287f062910f9
parent963e5d3b76d657f1ebcf3561446d2ba1872bbfa2
powerpc/smp: soft-replugged CPUs must go back to start_secondary

Various thing are torn down when a CPU is hot-unplugged. That CPU
is expected to go back to start_secondary when re-plugged to re
initialize everything, such as clock sources, maps, ...

Some implementations just return from cpu_die() callback
in the idle loop when the CPU is "re-plugged". This is not enough.

We fix it using a little asm trampoline which resets the stack
and calls back into start_secondary as if we were all fresh from
boot. The trampoline already existed on ppc64, but we add it for
ppc32

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/smp.h
arch/powerpc/kernel/head_32.S
arch/powerpc/kernel/smp.c
arch/powerpc/platforms/pseries/offline_states.h