[POWERPC] Make smp_send_stop() handle panic and xmon reboot
authorOlof Johansson <olof@lixom.net>
Fri, 28 Dec 2007 04:11:09 +0000 (15:11 +1100)
committerPaul Mackerras <paulus@samba.org>
Fri, 25 Jan 2008 11:52:50 +0000 (22:52 +1100)
commite057d985fd8aad83d07376c5c36f2c8a6c5411be
tree60506ba8d0fe04b53e7fe182e91633660a2ee710
parentb616de5ef928ac1914348ff6a42521ca6b83112e
[POWERPC] Make smp_send_stop() handle panic and xmon reboot

smp_send_stop() will send an IPI to all other cpus to shut them down.
However, for the case of xmon-based reboots (as well as potentially some
panics), the other cpus are (or might be) spinning with interrupts off,
and won't take the IPI.

Current code will drop us into the debugger when the IPI fails, which
means we're in an infinite loop that we can't get out of without an
external reset of some sort.

Instead, make the smp_send_stop() IPI call path just print the warning
about being unable to send IPIs, but make it return so the rest of the
shutdown sequence can continue. It's not perfect, but the lesser of
two evils.

Also move the call_lock handling outside of smp_call_function_map so we
can avoid deadlocks in smp_send_stop().

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/smp.c