s390/kdump: Clear subchannel ID to signal non-CCW/SCSI IPL
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>
Fri, 8 Aug 2014 15:57:31 +0000 (17:57 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 12 Aug 2014 11:00:06 +0000 (13:00 +0200)
For CCW and SCSI IPL the hardware sets the subchannel ID and number
correctly at 0xb8. For kdump at 0xb8 normally there is the data of
the previously IPLed system.

In order to be clean now for kdump and kexec always set the subchannel
ID and number to zero. This tells the next OS that no CCW/SCSI IPL
has been done.

Reviewed-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/ipl.c

index 633ca7504536c10a517667b5f582653f763390e3..22aac5885ba23eca4590d9219aefc1fab34d9325 100644 (file)
@@ -2060,6 +2060,13 @@ void s390_reset_system(void (*func)(void *), void *data)
        S390_lowcore.program_new_psw.addr =
                PSW_ADDR_AMODE | (unsigned long) s390_base_pgm_handler;
 
+       /*
+        * Clear subchannel ID and number to signal new kernel that no CCW or
+        * SCSI IPL has been done (for kexec and kdump)
+        */
+       S390_lowcore.subchannel_id = 0;
+       S390_lowcore.subchannel_nr = 0;
+
        /* Store status at absolute zero */
        store_status();