• Olof Johansson's avatar
    [POWERPC] Make smp_send_stop() handle panic and xmon reboot · e057d985
    Olof Johansson authored
    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: default avatarOlof Johansson <olof@lixom.net>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    e057d985
smp.c 13.9 KB