summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2005-11-07 00:59:04 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-07 07:53:33 -0800
commit9b4554aa21270f5b6fa19a9dd2285f16e11f15f1 (patch)
tree48624f0a859445f6e28b45c5d4c64ef144e16f10
parent373c491f6d15f29ab2f87d4a60f90cb0b770aaf6 (diff)
[PATCH] s390: memory query wait psw
Don't switch back to 24 bit addressing mode when waiting for an external interrupt and set the correct bit in wait PSW (external mask instead of I/O mask). Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--arch/s390/kernel/head.S3
-rw-r--r--arch/s390/kernel/head64.S5
2 files changed, 3 insertions, 5 deletions
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S
index 039354d7234..4ca02933211 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 193aafa72f5..d9be8f96f2e 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: