diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S
index 039354d72348eae678124fe62a9dc30dff2ac53f..4ca02933211480bd976801c7bffb5c8773ee5a61 100644
--- a/arch/s390/kernel/head.S
+++ b/arch/s390/kernel/head.S
@@ -572,8 +572,7 @@ startup:basr  %r13,0                     # get base
 .Lcr:
 	.long 0x00			# place holder for cr0
 .Lwaitsclp:
-	.long 0x020A0000
-	.long .Lsclph
+	.long 0x010a0000,0x80000000 + .Lsclph
 .Lrcp:
 	.int 0x00120001			# Read SCP forced code
 .Lrcp2:
diff --git a/arch/s390/kernel/head64.S b/arch/s390/kernel/head64.S
index 193aafa72f54a200158d6320728b0ca0b3037654..d9be8f96f2e07f2f1a25c34a5470ea3f0b31d273 100644
--- a/arch/s390/kernel/head64.S
+++ b/arch/s390/kernel/head64.S
@@ -530,7 +530,7 @@ startup:basr  %r13,0                     # get base
 	be    .Lfchunk-.LPG1(%r13)	# leave
 	chi   %r1,2
 	be    .Lservicecall-.LPG1(%r13)
-	lpsw  .Lwaitsclp-.LPG1(%r13)
+	lpswe .Lwaitsclp-.LPG1(%r13)
 .Lsclph:
 	lh    %r1,.Lsccbr-PARMAREA(%r4)
 	chi   %r1,0x10			# 0x0010 is the sucess code
@@ -567,8 +567,7 @@ startup:basr  %r13,0                     # get base
 .Lcr:
 	.quad 0x00  # place holder for cr0
 .Lwaitsclp:
-	.long 0x020A0000
-	.quad .Lsclph
+	.quad  0x0102000180000000,.Lsclph
 .Lrcp:
 	.int 0x00120001 # Read SCP forced code
 .Lrcp2: