aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/relocate_kernel.S
diff options
context:
space:
mode:
authorAlexander Egorenkov <egorenar@linux.ibm.com>2021-09-03 11:08:48 +0200
committerHeiko Carstens <hca@linux.ibm.com>2022-04-25 13:54:12 +0200
commit2ba24343bdb8637135bd0d9b5e249c44bd751670 (patch)
treea2ab5eb17592f217dc2e23bf47b5eeeb54bcd564 /arch/s390/kernel/relocate_kernel.S
parents390/sclp: add detection of IPL-complete-control facility (diff)
downloadlinux-dev-2ba24343bdb8637135bd0d9b5e249c44bd751670.tar.xz
linux-dev-2ba24343bdb8637135bd0d9b5e249c44bd751670.zip
s390/kexec: set end-of-ipl flag in last diag308 call
If the facility IPL-complete-control is present then the last diag308 call made by kexec shall set the end-of-ipl flag in the subcode register to signal the hypervisor that this is the last diag308 call made by Linux. Only the diag308 calls made during a regular kexec need to set the end-of-ipl flag, in all other cases the hypervisor will ignore it. Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com> Reviewed-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390/kernel/relocate_kernel.S')
-rw-r--r--arch/s390/kernel/relocate_kernel.S3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/s390/kernel/relocate_kernel.S b/arch/s390/kernel/relocate_kernel.S
index 9438368c3632..a9a1a6f45375 100644
--- a/arch/s390/kernel/relocate_kernel.S
+++ b/arch/s390/kernel/relocate_kernel.S
@@ -14,6 +14,7 @@
* moves the new kernel to its destination...
* %r2 = pointer to first kimage_entry_t
* %r3 = start address - where to jump to after the job is done...
+ * %r4 = subcode
*
* %r5 will be used as temp. storage
* %r6 holds the destination address
@@ -56,7 +57,7 @@ ENTRY(relocate_kernel)
jo 0b
j .base
.done:
- sgr %r0,%r0 # clear register r0
+ lgr %r0,%r4 # subcode
cghi %r3,0
je .diag
la %r4,load_psw-.base(%r13) # load psw-address into the register