summaryrefslogtreecommitdiffstats
path: root/arch/s390/kvm/interrupt.c
diff options
context:
space:
mode:
authorDavid Hildenbrand <dahi@linux.vnet.ibm.com>2015-11-04 16:46:55 +0100
committerChristian Borntraeger <borntraeger@de.ibm.com>2016-02-10 13:12:53 +0100
commiteaa4f41642f096f1e10c15a2b172d79199e893ff (patch)
tree34623b3d659c626562ee7e49711078824b6041c8 /arch/s390/kvm/interrupt.c
parentf6af84e7e7eb0558d5ad3882007956eb5b748ffd (diff)
downloadtalos-op-linux-eaa4f41642f096f1e10c15a2b172d79199e893ff.tar.gz
talos-op-linux-eaa4f41642f096f1e10c15a2b172d79199e893ff.zip
KVM: s390: irq delivery should not rely on icptcode
Program irq injection during program irq intercepts is the last candidates that injects nullifying irqs and relies on delivery to do the right thing. As we should not rely on the icptcode during any delivery (because that value will not be migrated), let's add a flag, telling prog IRQ delivery to not rewind the PSW in case of nullifying prog IRQs. Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390/kvm/interrupt.c')
-rw-r--r--arch/s390/kvm/interrupt.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
index e594a7830022..87e2d1a89d74 100644
--- a/arch/s390/kvm/interrupt.c
+++ b/arch/s390/kvm/interrupt.c
@@ -665,7 +665,7 @@ static int __must_check __deliver_prog(struct kvm_vcpu *vcpu)
(u8 *) __LC_PER_ACCESS_ID);
}
- if (nullifying && vcpu->arch.sie_block->icptcode == ICPT_INST)
+ if (nullifying && !(pgm_info.flags & KVM_S390_PGM_FLAGS_NO_REWIND))
kvm_s390_rewind_psw(vcpu, ilen);
/* bit 1+2 of the target are the ilc, so we can directly use ilen */
OpenPOWER on IntegriCloud