• Martin Schwidefsky's avatar
    s390/nmi: use smp_emergency_stop instead of smp_send_stop · 00a8f886
    Martin Schwidefsky authored
    The smp_send_stop() function can be called from s390_handle_damage
    while DAT is off. This happens if a machine check indicates that
    kernel gprs or control registers can not be restored. The function
    smp_send_stop reenables DAT via __load_psw_mask. That should work
    for the case of lost kernel gprs and the system will do the expected
    stop of all CPUs. But if control registers are lost, in particular
    CR13 with the home space ASCE, interesting secondary crashes may
    occur.
    
    Make smp_emergency_stop callable from nmi.c and remove the cpumask
    argument. Replace the smp_send_stop call with smp_emergency_stop in
    the s390_handle_damage function.
    
    In addition add notrace and NOKPROBE_SYMBOL annotations for all
    functions required for the emergency shutdown.
    Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    00a8f886
smp.h 2.41 KB