diff options
author | Carsten Otte <cotte@de.ibm.com> | 2011-04-20 10:15:36 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-05-02 09:19:42 -0700 |
commit | db952a764fa4a58b374363878f9eb5aa5525b81f (patch) | |
tree | c9a219345b080c8370df65ca5b092cb3d082f5d1 /arch | |
parent | 718731e7c909827e15dd3a43d169eeb4bf6c6f8d (diff) | |
download | lwn-db952a764fa4a58b374363878f9eb5aa5525b81f.tar.gz lwn-db952a764fa4a58b374363878f9eb5aa5525b81f.zip |
kvm-390: Let kernel exit SIE instruction on work
commit 9ff4cfb3fcfd48b49fdd9be7381b3be340853aa4 upstream.
From: Christian Borntraeger <borntraeger@de.ibm.com>
This patch fixes the sie exit on interrupts. The low level
interrupt handler returns to the PSW address in pt_regs and not
to the PSW address in the lowcore.
Without this fix a cpu bound guest might never leave guest state
since the host interrupt handler would blindly return to the
SIE instruction, even on need_resched and friends.
Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/s390/kvm/sie64a.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/s390/kvm/sie64a.S b/arch/s390/kvm/sie64a.S index 7e9d30d567b0..ab0e041ac54c 100644 --- a/arch/s390/kvm/sie64a.S +++ b/arch/s390/kvm/sie64a.S @@ -48,10 +48,10 @@ sie_irq_handler: tm __TI_flags+7(%r2),_TIF_EXIT_SIE jz 0f larl %r2,sie_exit # work pending, leave sie - stg %r2,__LC_RETURN_PSW+8 + stg %r2,SPI_PSW+8(0,%r15) br %r14 0: larl %r2,sie_reenter # re-enter with guest id - stg %r2,__LC_RETURN_PSW+8 + stg %r2,SPI_PSW+8(0,%r15) 1: br %r14 /* |