diff options
| author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2005-06-21 20:16:31 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-21 22:07:34 -0400 |
| commit | 2b071886170df456e230c38a3e504da4a11fff79 (patch) | |
| tree | 0031ea86de067846c22d15c35bd78d611f61edb7 | |
| parent | e9b9a04796eade5241452a913ec6f3433437b4f5 (diff) | |
[PATCH] s390: pending interrupt after ipl from reader
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>
| -rw-r--r-- | arch/s390/kernel/head.S | 19 | ||||
| -rw-r--r-- | arch/s390/kernel/head64.S | 19 |
2 files changed, 34 insertions, 4 deletions
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S index 658e8de74f88..fc8bf5e285f6 100644 --- a/arch/s390/kernel/head.S +++ b/arch/s390/kernel/head.S | |||
| @@ -345,10 +345,25 @@ iplstart: | |||
| 345 | bno .Lnoreset | 345 | bno .Lnoreset |
| 346 | la %r2,.Lreset | 346 | la %r2,.Lreset |
| 347 | lhi %r3,26 | 347 | lhi %r3,26 |
| 348 | .long 0x83230008 | 348 | diag %r2,%r3,8 |
| 349 | mvc 0x78(8),.Lrdrnewpsw # set up IO interrupt psw | ||
| 350 | .Lwaitrdrirq: | ||
| 351 | lpsw .Lrdrwaitpsw | ||
| 352 | .Lrdrint: | ||
| 353 | c %r1,0xb8 # compare subchannel number | ||
| 354 | bne .Lwaitrdrirq | ||
| 355 | la %r5,.Lirb | ||
| 356 | tsch 0(%r5) | ||
| 349 | .Lnoreset: | 357 | .Lnoreset: |
| 358 | b .Lnoload | ||
| 359 | |||
| 360 | .align 8 | ||
| 361 | .Lrdrnewpsw: | ||
| 362 | .long 0x00080000,0x80000000+.Lrdrint | ||
| 363 | .Lrdrwaitpsw: | ||
| 364 | .long 0x020a0000,0x80000000+.Lrdrint | ||
| 350 | #endif | 365 | #endif |
| 351 | 366 | ||
| 352 | # | 367 | # |
| 353 | # everything loaded, go for it | 368 | # everything loaded, go for it |
| 354 | # | 369 | # |
diff --git a/arch/s390/kernel/head64.S b/arch/s390/kernel/head64.S index 8e2caf9dc185..f525c0c21250 100644 --- a/arch/s390/kernel/head64.S +++ b/arch/s390/kernel/head64.S | |||
| @@ -344,10 +344,25 @@ iplstart: | |||
| 344 | bno .Lnoreset | 344 | bno .Lnoreset |
| 345 | la %r2,.Lreset | 345 | la %r2,.Lreset |
| 346 | lhi %r3,26 | 346 | lhi %r3,26 |
| 347 | .long 0x83230008 | 347 | diag %r2,%r3,8 |
| 348 | mvc 0x78(8),.Lrdrnewpsw # set up IO interrupt psw | ||
| 349 | .Lwaitrdrirq: | ||
| 350 | lpsw .Lrdrwaitpsw | ||
| 351 | .Lrdrint: | ||
| 352 | c %r1,0xb8 # compare subchannel number | ||
| 353 | bne .Lwaitrdrirq | ||
| 354 | la %r5,.Lirb | ||
| 355 | tsch 0(%r5) | ||
| 348 | .Lnoreset: | 356 | .Lnoreset: |
| 357 | b .Lnoload | ||
| 358 | |||
| 359 | .align 8 | ||
| 360 | .Lrdrnewpsw: | ||
| 361 | .long 0x00080000,0x80000000+.Lrdrint | ||
| 362 | .Lrdrwaitpsw: | ||
| 363 | .long 0x020a0000,0x80000000+.Lrdrint | ||
| 349 | #endif | 364 | #endif |
| 350 | 365 | ||
| 351 | # | 366 | # |
| 352 | # everything loaded, go for it | 367 | # everything loaded, go for it |
| 353 | # | 368 | # |
