mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-03 00:54:09 +08:00
[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: 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>
This commit is contained in:
parent
5712f52e8c
commit
350e3ade9e
@ -346,6 +346,13 @@ iplstart:
|
||||
la %r2,.Lreset
|
||||
lhi %r3,26
|
||||
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
|
||||
.Lwaitrdrirq:
|
||||
lpsw .Lrdrwaitpsw
|
||||
|
@ -345,6 +345,13 @@ iplstart:
|
||||
la %r2,.Lreset
|
||||
lhi %r3,26
|
||||
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
|
||||
.Lwaitrdrirq:
|
||||
lpsw .Lrdrwaitpsw
|
||||
|
Loading…
Reference in New Issue
Block a user