diff options
| -rw-r--r-- | arch/s390/kernel/head.S | 7 | ||||
| -rw-r--r-- | arch/s390/kernel/head64.S | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S index d12cff11b4bc..2710e66fefba 100644 --- a/arch/s390/kernel/head.S +++ b/arch/s390/kernel/head.S | |||
| @@ -346,6 +346,13 @@ iplstart: | |||
| 346 | la %r2,.Lreset | 346 | la %r2,.Lreset |
| 347 | lhi %r3,26 | 347 | lhi %r3,26 |
| 348 | diag %r2,%r3,8 | 348 | diag %r2,%r3,8 |
| 349 | la %r5,.Lirb | ||
| 350 | stsch 0(%r5) # check if irq is pending | ||
| 351 | tm 30(%r5),0x0f # by verifying if any of the | ||
| 352 | bnz .Lwaitforirq # activity or status control | ||
| 353 | tm 31(%r5),0xff # bits is set in the schib | ||
| 354 | bz .Lnoreset | ||
| 355 | .Lwaitforirq: | ||
| 349 | mvc 0x78(8),.Lrdrnewpsw # set up IO interrupt psw | 356 | mvc 0x78(8),.Lrdrnewpsw # set up IO interrupt psw |
| 350 | .Lwaitrdrirq: | 357 | .Lwaitrdrirq: |
| 351 | lpsw .Lrdrwaitpsw | 358 | lpsw .Lrdrwaitpsw |
diff --git a/arch/s390/kernel/head64.S b/arch/s390/kernel/head64.S index 10bc592c3637..9a8263a153cb 100644 --- a/arch/s390/kernel/head64.S +++ b/arch/s390/kernel/head64.S | |||
| @@ -345,6 +345,13 @@ iplstart: | |||
| 345 | la %r2,.Lreset | 345 | la %r2,.Lreset |
| 346 | lhi %r3,26 | 346 | lhi %r3,26 |
| 347 | diag %r2,%r3,8 | 347 | diag %r2,%r3,8 |
| 348 | la %r5,.Lirb | ||
| 349 | stsch 0(%r5) # check if irq is pending | ||
| 350 | tm 30(%r5),0x0f # by verifying if any of the | ||
| 351 | bnz .Lwaitforirq # activity or status control | ||
| 352 | tm 31(%r5),0xff # bits is set in the schib | ||
| 353 | bz .Lnoreset | ||
| 354 | .Lwaitforirq: | ||
| 348 | mvc 0x78(8),.Lrdrnewpsw # set up IO interrupt psw | 355 | mvc 0x78(8),.Lrdrnewpsw # set up IO interrupt psw |
| 349 | .Lwaitrdrirq: | 356 | .Lwaitrdrirq: |
| 350 | lpsw .Lrdrwaitpsw | 357 | lpsw .Lrdrwaitpsw |
