Normally they don't need to be set up before waiting for an interrupt but are set up on boot. The BIOS however might overwrite the lowcore (and hence the PSWs) when loading a blob into memory and therefore needs to set up those PSWs more often.
Signed-off-by: Janosch Frank <fran...@linux.ibm.com> --- pc-bios/s390-ccw/start.S | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pc-bios/s390-ccw/start.S b/pc-bios/s390-ccw/start.S index 01c4c21b26..b0fcb918cc 100644 --- a/pc-bios/s390-ccw/start.S +++ b/pc-bios/s390-ccw/start.S @@ -64,7 +64,10 @@ consume_sclp_int: stctg %c0,%c0,0(%r15) oi 6(%r15),0x2 lctlg %c0,%c0,0(%r15) - /* prepare external call handler */ + /* + * Prepare external new PSW as it might have been overwritten + * by a loaded blob + */ larl %r1, external_new_code stg %r1, 0x1b8 larl %r1, external_new_mask @@ -84,7 +87,10 @@ consume_io_int: stctg %c6,%c6,0(%r15) oi 4(%r15), 0xff lctlg %c6,%c6,0(%r15) - /* prepare i/o call handler */ + /* + * Prepare i/o new PSW as it might have been overwritten + * by a loaded blob + */ larl %r1, io_new_code stg %r1, 0x1f8 larl %r1, io_new_mask -- 2.25.1