]> git.karo-electronics.de Git - karo-tx-linux.git/commit
s390/kdump: fix nosmt kernel parameter
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>
Tue, 26 May 2015 17:05:23 +0000 (19:05 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 25 Jun 2015 07:39:26 +0000 (09:39 +0200)
commit1592a8e456436024b6c662f423ce672e672169bb
tree2afa9f14819db46b7e11e918e5f69124dc31f71c
parent1d1858d2444770154d311e8df5849d44f957dba3
s390/kdump: fix nosmt kernel parameter

It turned out that SIGP set-multi-threading can only be done once.
Therefore switching to a different MT level after switching to
sclp.mtid_prev in the dump case fails.

As a symptom specifying the "nosmt" parameter currently fails for
the kdump kernel and the kernel starts with multi-threading enabled.

So fix this and issue diag 308 subcode 1 call after collecting the
CPU states for the dump. Also enhance the diag308_reset() function to
be usable also with enabled lowcore protection and prefix register != 0.
After the reset it is possible to switch the MT level again. We have
to do the reset very early in order not to kill the already initialized
console. Therefore instead of kmalloc() the corresponding memblock
functions have to be used. To avoid copying the sclp cpu code into
sclp_early, we now use the simple sigp loop method for CPU detection.

Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/ipl.h
arch/s390/include/asm/smp.h
arch/s390/kernel/base.S
arch/s390/kernel/crash_dump.c
arch/s390/kernel/setup.c
arch/s390/kernel/smp.c
drivers/s390/char/zcore.c