diff options
| -rw-r--r-- | drivers/s390/cio/cio.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c index cbde448f9947..eb3140ee821e 100644 --- a/drivers/s390/cio/cio.c +++ b/drivers/s390/cio/cio.c | |||
| @@ -654,8 +654,8 @@ static struct io_subchannel_private console_priv; | |||
| 654 | static int console_subchannel_in_use; | 654 | static int console_subchannel_in_use; |
| 655 | 655 | ||
| 656 | /* | 656 | /* |
| 657 | * Use tpi to get a pending interrupt, call the interrupt handler and | 657 | * Use cio_tpi to get a pending interrupt and call the interrupt handler. |
| 658 | * return a pointer to the subchannel structure. | 658 | * Return non-zero if an interrupt was processed, zero otherwise. |
| 659 | */ | 659 | */ |
| 660 | static int cio_tpi(void) | 660 | static int cio_tpi(void) |
| 661 | { | 661 | { |
| @@ -667,6 +667,10 @@ static int cio_tpi(void) | |||
| 667 | tpi_info = (struct tpi_info *)&S390_lowcore.subchannel_id; | 667 | tpi_info = (struct tpi_info *)&S390_lowcore.subchannel_id; |
| 668 | if (tpi(NULL) != 1) | 668 | if (tpi(NULL) != 1) |
| 669 | return 0; | 669 | return 0; |
| 670 | if (tpi_info->adapter_IO) { | ||
| 671 | do_adapter_IO(tpi_info->isc); | ||
| 672 | return 1; | ||
| 673 | } | ||
| 670 | irb = (struct irb *)&S390_lowcore.irb; | 674 | irb = (struct irb *)&S390_lowcore.irb; |
| 671 | /* Store interrupt response block to lowcore. */ | 675 | /* Store interrupt response block to lowcore. */ |
| 672 | if (tsch(tpi_info->schid, irb) != 0) | 676 | if (tsch(tpi_info->schid, irb) != 0) |
