kvm: fix events.flags (KVM_VCPUEVENT_VALID_SMM) overwritten by 0

Fix events.flags (KVM_VCPUEVENT_VALID_SMM) overwritten by 0.

Signed-off-by: He Rongguang <herongguang.he@huawei.com>
Message-Id: <57E38EAC.3020108@huawei.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Herongguang (Stephen) 2016-09-22 15:56:28 +08:00 committed by Paolo Bonzini
parent 6867783a80
commit 68c6efe07a

View File

@ -2452,6 +2452,7 @@ static int kvm_put_vcpu_events(X86CPU *cpu, int level)
events.nmi.pad = 0; events.nmi.pad = 0;
events.sipi_vector = env->sipi_vector; events.sipi_vector = env->sipi_vector;
events.flags = 0;
if (has_msr_smbase) { if (has_msr_smbase) {
events.smi.smm = !!(env->hflags & HF_SMM_MASK); events.smi.smm = !!(env->hflags & HF_SMM_MASK);
@ -2471,7 +2472,6 @@ static int kvm_put_vcpu_events(X86CPU *cpu, int level)
events.flags |= KVM_VCPUEVENT_VALID_SMM; events.flags |= KVM_VCPUEVENT_VALID_SMM;
} }
events.flags = 0;
if (level >= KVM_PUT_RESET_STATE) { if (level >= KVM_PUT_RESET_STATE) {
events.flags |= events.flags |=
KVM_VCPUEVENT_VALID_NMI_PENDING | KVM_VCPUEVENT_VALID_SIPI_VECTOR; KVM_VCPUEVENT_VALID_NMI_PENDING | KVM_VCPUEVENT_VALID_SIPI_VECTOR;