s390/startup: add initial pgm check handler
authorVasily Gorbik <gor@linux.ibm.com>
Thu, 8 Aug 2019 11:50:02 +0000 (13:50 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Wed, 21 Aug 2019 10:41:43 +0000 (12:41 +0200)
commitda9ed30d29c48233cec4a19e2bd794bcaa230341
tree3462d3cdb9d48817dcf7e293e90e51f0c8435c2e
parent40e90656c13587c0826e8afeef3cebe585db2d2c
s390/startup: add initial pgm check handler

The startup code is getting more complicated with features like kaslr and
secure boot in place. In a potential unexpected startup code crash case
the system would end up in a pgm check loop at address 0, overwriting
pgm check old psw value and just making debugging more complicated. To
avoid that introduce startup program check handler which is active
immediately after kernel start and until early_pgm_check_handler is set
in kernel/early.c. So it covers kernel relocation phase and transition
to it. This pgm check handler simply saves general/control registers and
psw in the save area which should guarantee that we still have something
to look at when standalone dumper is called without saving registers. And
it does disabled wait with a faulty address in the end.

Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/boot/head.S