]> git.karo-electronics.de Git - karo-tx-linux.git/commit
powerpc/kexec: Fix orphaned offline CPUs across kexec
authorMatt Evans <matt@ozlabs.org>
Mon, 7 Mar 2011 11:56:04 +0000 (17:26 +0530)
committerWilly Tarreau <w@1wt.eu>
Sat, 30 Apr 2011 14:53:14 +0000 (16:53 +0200)
commitb4ca174c59cf2132dc51eb1e8c6e23f4156e02ca
tree6ed0ca941f2ee796613d6e47a6b070fe8ee2af2a
parent116a10e2564e9c2cdfdfcc3829f47cb88e514f58
powerpc/kexec: Fix orphaned offline CPUs across kexec

Commit: e8e5c2155b0035b6e04f29be67f6444bc914005b upstream

When CPU hotplug is used, some CPUs may be offline at the time a kexec is
performed.  The subsequent kernel may expect these CPUs to be already running,
and will declare them stuck.  On pseries, there's also a soft-offline (cede)
state that CPUs may be in; this can also cause problems as the kexeced kernel
may ask RTAS if they're online -- and RTAS would say they are.  The CPU will
either appear stuck, or will cause a crash as we replace its cede loop beneath
it.

This patch kicks each present offline CPU awake before the kexec, so that
none are forever lost to these assumptions in the subsequent kernel.

Now, the behaviour is that all available CPUs that were offlined are now
online & usable after the kexec.  This mimics the behaviour of a full reboot
(on which all CPUs will be restarted).

Signed-off-by: Matt Evans <matt@ozlabs.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Kamalesh babulal <kamalesh@linux.vnet.ibm.com>
cc: Anton Blanchard <anton@samba.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/powerpc/kernel/machine_kexec_64.c