diff options
Diffstat (limited to 'arch/x86/kvm/hyperv.c')
| -rw-r--r-- | arch/x86/kvm/hyperv.c | 5 | 
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c index 5ff3485acb60..01bd7b7a6866 100644 --- a/arch/x86/kvm/hyperv.c +++ b/arch/x86/kvm/hyperv.c @@ -1116,6 +1116,11 @@ int kvm_hv_hypercall(struct kvm_vcpu *vcpu)  		break;  	case HVCALL_POST_MESSAGE:  	case HVCALL_SIGNAL_EVENT: +		/* don't bother userspace if it has no way to handle it */ +		if (!vcpu_to_synic(vcpu)->active) { +			res = HV_STATUS_INVALID_HYPERCALL_CODE; +			break; +		}  		vcpu->run->exit_reason = KVM_EXIT_HYPERV;  		vcpu->run->hyperv.type = KVM_EXIT_HYPERV_HCALL;  		vcpu->run->hyperv.u.hcall.input = param;  |