aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/s390/kvm/interrupt.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
index 4fc3fed636dc..ead52bfb4c1d 100644
--- a/arch/s390/kvm/interrupt.c
+++ b/arch/s390/kvm/interrupt.c
@@ -851,7 +851,17 @@ static int __inject_vm(struct kvm *kvm, struct kvm_s390_interrupt_info *inti)
851 dst_vcpu = kvm_get_vcpu(kvm, sigcpu); 851 dst_vcpu = kvm_get_vcpu(kvm, sigcpu);
852 li = &dst_vcpu->arch.local_int; 852 li = &dst_vcpu->arch.local_int;
853 spin_lock(&li->lock); 853 spin_lock(&li->lock);
854 atomic_set_mask(CPUSTAT_EXT_INT, li->cpuflags); 854 switch (inti->type) {
855 case KVM_S390_MCHK:
856 atomic_set_mask(CPUSTAT_STOP_INT, li->cpuflags);
857 break;
858 case KVM_S390_INT_IO_MIN...KVM_S390_INT_IO_MAX:
859 atomic_set_mask(CPUSTAT_IO_INT, li->cpuflags);
860 break;
861 default:
862 atomic_set_mask(CPUSTAT_EXT_INT, li->cpuflags);
863 break;
864 }
855 spin_unlock(&li->lock); 865 spin_unlock(&li->lock);
856 kvm_s390_vcpu_wakeup(kvm_get_vcpu(kvm, sigcpu)); 866 kvm_s390_vcpu_wakeup(kvm_get_vcpu(kvm, sigcpu));
857unlock_fi: 867unlock_fi: