forked from luck/tmp_suning_uos_patched
[S390] cio: fix cio_tpi ignoring adapter interrupts
Ensure that adapter interrupts are correctly processed when they are retrieved using TEST PENDING INTERRUPTION. Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
05873df981
commit
a681887f7b
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user