diff options
-rw-r--r-- | arch/s390/kvm/interrupt.c | 12 |
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)); |
857 | unlock_fi: | 867 | unlock_fi: |