|
@@ -896,7 +896,8 @@ static int vcpu_post_run(struct kvm_vcpu *vcpu, int exit_reason)
|
|
|
|
|
|
if (rc == 0) {
|
|
|
if (kvm_is_ucontrol(vcpu->kvm))
|
|
|
- rc = -EOPNOTSUPP;
|
|
|
+ /* Don't exit for host interrupts. */
|
|
|
+ rc = vcpu->arch.sie_block->icptcode ? -EOPNOTSUPP : 0;
|
|
|
else
|
|
|
rc = kvm_handle_sie_intercept(vcpu);
|
|
|
}
|
|
@@ -949,8 +950,6 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
|
|
|
|
|
|
atomic_clear_mask(CPUSTAT_STOPPED, &vcpu->arch.sie_block->cpuflags);
|
|
|
|
|
|
- BUG_ON(kvm_get_vcpu(vcpu->kvm, vcpu->vcpu_id) == NULL);
|
|
|
-
|
|
|
switch (kvm_run->exit_reason) {
|
|
|
case KVM_EXIT_S390_SIEIC:
|
|
|
case KVM_EXIT_UNKNOWN:
|