diff options
author | Arnd Bergmann <arnd@arndb.de> | 2011-10-20 12:59:19 (GMT) |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2011-10-20 12:59:19 (GMT) |
commit | 2f540738f8d228016c6cd0d3b303896c174ecee3 (patch) | |
tree | 7e6574c041ac4386763f94d3d401d70f4ab6f55b /drivers/s390 | |
parent | a3849a4c038a21075a0bc7eaf37f65a93976d10c (diff) | |
parent | d8e9c00e38f6947cef7f5466a0a3d369461ab97f (diff) | |
download | linux-fsl-qoriq-2f540738f8d228016c6cd0d3b303896c174ecee3.tar.xz |
Merge branch 'tegra/cleanup' into next/cleanup
Diffstat (limited to 'drivers/s390')
-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 cbde448..eb3140e 100644 --- a/drivers/s390/cio/cio.c +++ b/drivers/s390/cio/cio.c @@ -654,8 +654,8 @@ static struct io_subchannel_private console_priv; static int console_subchannel_in_use; /* - * Use tpi to get a pending interrupt, call the interrupt handler and - * return a pointer to the subchannel structure. + * Use cio_tpi to get a pending interrupt and call the interrupt handler. + * Return non-zero if an interrupt was processed, zero otherwise. */ static int cio_tpi(void) { @@ -667,6 +667,10 @@ static int cio_tpi(void) tpi_info = (struct tpi_info *)&S390_lowcore.subchannel_id; if (tpi(NULL) != 1) return 0; + if (tpi_info->adapter_IO) { + do_adapter_IO(tpi_info->isc); + return 1; + } irb = (struct irb *)&S390_lowcore.irb; /* Store interrupt response block to lowcore. */ if (tsch(tpi_info->schid, irb) != 0) |