[PATCH] s390: pending interrupt after ipl from reader
Heiko Carstens [Wed, 22 Jun 2005 00:16:31 +0000 (17:16 -0700)]
Wait for interrupt and clear status pending after resetting the reader.

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>

arch/s390/kernel/head.S
arch/s390/kernel/head64.S

index 658e8de..fc8bf5e 100644 (file)
@@ -345,10 +345,25 @@ iplstart:
        bno   .Lnoreset
         la    %r2,.Lreset              
         lhi   %r3,26
-        .long 0x83230008
+       diag  %r2,%r3,8
+       mvc   0x78(8),.Lrdrnewpsw              # set up IO interrupt psw
+.Lwaitrdrirq:
+       lpsw  .Lrdrwaitpsw
+.Lrdrint:
+       c     %r1,0xb8                         # compare subchannel number
+       bne   .Lwaitrdrirq
+       la    %r5,.Lirb
+       tsch  0(%r5)
 .Lnoreset:
+        b     .Lnoload
+
+       .align 8
+.Lrdrnewpsw:
+       .long  0x00080000,0x80000000+.Lrdrint
+.Lrdrwaitpsw:
+       .long  0x020a0000,0x80000000+.Lrdrint
 #endif
-       
+
 #
 # everything loaded, go for it
 #
index 8e2caf9..f525c0c 100644 (file)
@@ -344,10 +344,25 @@ iplstart:
        bno   .Lnoreset
         la    %r2,.Lreset              
         lhi   %r3,26
-        .long 0x83230008
+       diag  %r2,%r3,8
+       mvc   0x78(8),.Lrdrnewpsw              # set up IO interrupt psw
+.Lwaitrdrirq:
+       lpsw  .Lrdrwaitpsw
+.Lrdrint:
+       c     %r1,0xb8                         # compare subchannel number
+       bne   .Lwaitrdrirq
+       la    %r5,.Lirb
+       tsch  0(%r5)
 .Lnoreset:
+       b     .Lnoload
+
+       .align 8
+.Lrdrnewpsw:
+       .long  0x00080000,0x80000000+.Lrdrint
+.Lrdrwaitpsw:
+       .long  0x020a0000,0x80000000+.Lrdrint
 #endif
-       
+
 #
 # everything loaded, go for it
 #