diff options
author | Heiko Carstens | 2022-04-24 16:02:21 +0200 |
---|---|---|
committer | Heiko Carstens | 2022-05-06 20:45:15 +0200 |
commit | aceb06d1e83783bf5a25c4979647bd8af6a99654 (patch) | |
tree | 1430817b32842057f60f93cb9f25a3a8519caa39 /arch/s390 | |
parent | 84f4e1dfb243c0aaed0425a2b1c308a2fb37425d (diff) |
s390/head: initialize all new psws
Initialize all new psws with disabled wait psws, except for the restart new
psw. This way every unexpected exception, svc, machine check, or interrupt
is handled properly.
Reviewed-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/boot/head.S | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/arch/s390/boot/head.S b/arch/s390/boot/head.S index 0b2cec40f261..a63f7de76462 100644 --- a/arch/s390/boot/head.S +++ b/arch/s390/boot/head.S @@ -64,14 +64,22 @@ __HEAD .long 0x02000690,0x60000050 .long 0x020006e0,0x20000050 - .org __LC_RST_NEW_PSW # 0x1a0 +# The restart psw points to ipl_entry, which allows to load a kernel image +# into memory and starting it by a psw restart on any cpu. +# All other default psw new locations contain a disabled wait psw where the +# address indicates which psw was loaded. + .org __LC_RST_NEW_PSW .quad 0,IPL_START - .org __LC_EXT_NEW_PSW # 0x1b0 - .quad 0x0002000180000000,0x1b0 # disabled wait - .org __LC_PGM_NEW_PSW # 0x1d0 - .quad 0x0002000180000000,0x1d0 # disabled wait - .org __LC_IO_NEW_PSW # 0x1f0 - .quad 0x0002000180000000,0x1f0 # disabled wait + .org __LC_EXT_NEW_PSW + .quad 0x0002000180000000,__LC_EXT_NEW_PSW + .org __LC_SVC_NEW_PSW + .quad 0x0002000180000000,__LC_SVC_NEW_PSW + .org __LC_PGM_NEW_PSW + .quad 0x0002000180000000,__LC_PGM_NEW_PSW + .org __LC_MCK_NEW_PSW + .quad 0x0002000180000000,__LC_MCK_NEW_PSW + .org __LC_IO_NEW_PSW + .quad 0x0002000180000000,__LC_IO_NEW_PSW .org IPL_START ipl_start: |