From: Heiko Carstens <[email protected]>
[patch 5/14] 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 <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
---
arch/s390/kernel/head.S | 3 +--
arch/s390/kernel/head64.S | 5 ++---
2 files changed, 3 insertions(+), 5 deletions(-)
diff -urpN linux-2.6/arch/s390/kernel/head64.S linux-2.6-patched/arch/s390/kernel/head64.S
--- linux-2.6/arch/s390/kernel/head64.S 2005-10-28 14:04:41.000000000 +0200
+++ linux-2.6-patched/arch/s390/kernel/head64.S 2005-10-28 14:04:47.000000000 +0200
@@ -530,7 +530,7 @@ startup:basr %r13,0
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
.Lcr:
.quad 0x00 # place holder for cr0
.Lwaitsclp:
- .long 0x020A0000
- .quad .Lsclph
+ .quad 0x0102000180000000,.Lsclph
.Lrcp:
.int 0x00120001 # Read SCP forced code
.Lrcp2:
diff -urpN linux-2.6/arch/s390/kernel/head.S linux-2.6-patched/arch/s390/kernel/head.S
--- linux-2.6/arch/s390/kernel/head.S 2005-10-28 14:04:41.000000000 +0200
+++ linux-2.6-patched/arch/s390/kernel/head.S 2005-10-28 14:04:47.000000000 +0200
@@ -572,8 +572,7 @@ startup:basr %r13,0
.Lcr:
.long 0x00 # place holder for cr0
.Lwaitsclp:
- .long 0x020A0000
- .long .Lsclph
+ .long 0x010a0000,0x80000000 + .Lsclph
.Lrcp:
.int 0x00120001 # Read SCP forced code
.Lrcp2: