aboutsummaryrefslogtreecommitdiff
path: root/arch/s390
diff options
context:
space:
mode:
authorHeiko Carstens2022-04-24 16:02:21 +0200
committerHeiko Carstens2022-05-06 20:45:15 +0200
commitaceb06d1e83783bf5a25c4979647bd8af6a99654 (patch)
tree1430817b32842057f60f93cb9f25a3a8519caa39 /arch/s390
parent84f4e1dfb243c0aaed0425a2b1c308a2fb37425d (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.S22
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: