• Michael Holzheu's avatar
    s390/kdump: Use real mode for PSW restart and kexec · fa7c0043
    Michael Holzheu authored
    Currently the PSW restart handler and kexec are executed in real
    mode with DAT=off. For kexec/kdump the function setup_regs() is
    called that uses the per-cpu variable "crash_notes". Because
    there are situations when the per-cpu implementation uses vmalloc
    memory, calling setup_regs() in real mode can cause a program
    check interrupt.
    
    To fix that problem this patch changes the following:
    
    * Ensure that diag308_reset() does not change PSW bits to real mode
    * Enable DAT in __do_restart() after we switched to an online CPU
    * Enable DAT in __machine_kexec() after we switched to the IPL CPU
    * Call setup_regs() before we switch to real mode and call purgatory
    Reviewed-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    fa7c0043
base.S 4.13 KB