Hyper-V partition must possess 'HV_SIGNAL_EVENTS' privilege to issue
HVCALL_SIGNAL_EVENT hypercalls.

Signed-off-by: Vitaly Kuznetsov <vkuzn...@redhat.com>
---
 arch/x86/kvm/hyperv.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
index 6e4bf1da9dcf..b661f92d90c8 100644
--- a/arch/x86/kvm/hyperv.c
+++ b/arch/x86/kvm/hyperv.c
@@ -2120,6 +2120,12 @@ int kvm_hv_hypercall(struct kvm_vcpu *vcpu)
                kvm_vcpu_on_spin(vcpu, true);
                break;
        case HVCALL_SIGNAL_EVENT:
+               if (unlikely(!(hv_vcpu->cpuid_cache.features_ebx &
+                              HV_SIGNAL_EVENTS))) {
+                       ret = HV_STATUS_ACCESS_DENIED;
+                       break;
+               }
+
                if (unlikely(rep)) {
                        ret = HV_STATUS_INVALID_HYPERCALL_INPUT;
                        break;
-- 
2.30.2

Reply via email to