KVM: VMX: Do not fully reset PI descriptor on vCPU reset
[sfrench/cifs-2.6.git] / arch / x86 / kvm / vmx.c
index 95a01609d7eea13633a6d53383a6e2859463c3e5..e0b4b64f211adbcb587f61248cdca010373acc59 100644 (file)
@@ -5619,8 +5619,10 @@ static void vmx_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event)
 
        kvm_make_request(KVM_REQ_APIC_PAGE_RELOAD, vcpu);
 
-       if (kvm_vcpu_apicv_active(vcpu))
-               memset(&vmx->pi_desc, 0, sizeof(struct pi_desc));
+       if (kvm_vcpu_apicv_active(vcpu)) {
+               pi_clear_on(&vmx->pi_desc);
+               memset(vmx->pi_desc.pir, 0, sizeof(vmx->pi_desc.pir));
+       }
 
        if (vmx->vpid != 0)
                vmcs_write16(VIRTUAL_PROCESSOR_ID, vmx->vpid);