Commit 350e3ade authored by Heiko Carstens's avatar Heiko Carstens Committed by Linus Torvalds

[PATCH] s390: check for interrupt before waiting

The patch that introduced waiting for interrupts after resetting the reader
can cause the boot to fail because the system is waiting for an interrupt that
will never arrive.  Add code to check if an interrupt is supposed to arrive
before waiting endlessly.
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 5712f52e
...@@ -346,6 +346,13 @@ iplstart: ...@@ -346,6 +346,13 @@ iplstart:
la %r2,.Lreset la %r2,.Lreset
lhi %r3,26 lhi %r3,26
diag %r2,%r3,8 diag %r2,%r3,8
la %r5,.Lirb
stsch 0(%r5) # check if irq is pending
tm 30(%r5),0x0f # by verifying if any of the
bnz .Lwaitforirq # activity or status control
tm 31(%r5),0xff # bits is set in the schib
bz .Lnoreset
.Lwaitforirq:
mvc 0x78(8),.Lrdrnewpsw # set up IO interrupt psw mvc 0x78(8),.Lrdrnewpsw # set up IO interrupt psw
.Lwaitrdrirq: .Lwaitrdrirq:
lpsw .Lrdrwaitpsw lpsw .Lrdrwaitpsw
......
...@@ -345,6 +345,13 @@ iplstart: ...@@ -345,6 +345,13 @@ iplstart:
la %r2,.Lreset la %r2,.Lreset
lhi %r3,26 lhi %r3,26
diag %r2,%r3,8 diag %r2,%r3,8
la %r5,.Lirb
stsch 0(%r5) # check if irq is pending
tm 30(%r5),0x0f # by verifying if any of the
bnz .Lwaitforirq # activity or status control
tm 31(%r5),0xff # bits is set in the schib
bz .Lnoreset
.Lwaitforirq:
mvc 0x78(8),.Lrdrnewpsw # set up IO interrupt psw mvc 0x78(8),.Lrdrnewpsw # set up IO interrupt psw
.Lwaitrdrirq: .Lwaitrdrirq:
lpsw .Lrdrwaitpsw lpsw .Lrdrwaitpsw
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment