[Devel,RHEL7,COMMIT] Revert "ms/KVM: x86: reset MMU on KVM_SET_VCPU_EVENTS"

Submitted by Konstantin Khorenko on April 14, 2017, 2:43 p.m.

Details

Message ID 201704141443.v3EEhiXf019994@finist_cl7.x64_64.work.ct
State New
Series "Revert "ms/KVM: x86: reset MMU on KVM_SET_VCPU_EVENTS""
Headers show

Commit Message

Konstantin Khorenko April 14, 2017, 2:43 p.m.
The commit is pushed to "branch-rh7-3.10.0-514.10.2.vz7.29.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-514.10.2.vz7.29.16
------>
commit 5eed936eee3c888c7eb0286373effde87ed039d3
Author: Konstantin Khorenko <khorenko@virtuozzo.com>
Date:   Fri Apr 14 18:40:27 2017 +0400

    Revert "ms/KVM: x86: reset MMU on KVM_SET_VCPU_EVENTS"
    
    This reverts commit b36e7eda7523c63eac6cc524191c38b9ab9e7177.
    
    As it's suspected to have caused more problems than it fixes.
    
    Fixes: https://jira.sw.ru/browse/PSBM-62341
    
    Suspected to cause:
    https://jira.sw.ru/browse/PSBM-63993
    https://jira.sw.ru/browse/PSBM-64259
    https://jira.sw.ru/browse/PSBM-63253
    https://jira.sw.ru/browse/PSBM-63962
    
    Cc: Denis Plotnikov <dplotnikov@virtuozzo.com>
    Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
---
 arch/x86/kvm/x86.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

Patch hide | download patch | download mbox

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index e692050..81104d2 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3184,8 +3184,6 @@  static void kvm_vcpu_ioctl_x86_get_vcpu_events(struct kvm_vcpu *vcpu,
 	memset(&events->reserved, 0, sizeof(events->reserved));
 }
 
-static void kvm_set_hflags(struct kvm_vcpu *vcpu, unsigned emul_flags);
-
 static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu,
 					      struct kvm_vcpu_events *events)
 {
@@ -3222,13 +3220,10 @@  static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu,
 		vcpu->arch.apic->sipi_vector = events->sipi_vector;
 
 	if (events->flags & KVM_VCPUEVENT_VALID_SMM) {
-		u32 hflags = vcpu->arch.hflags;
 		if (events->smi.smm)
-			hflags |= HF_SMM_MASK;
+			vcpu->arch.hflags |= HF_SMM_MASK;
 		else
-			hflags &= ~HF_SMM_MASK;
-		kvm_set_hflags(vcpu, hflags);
-
+			vcpu->arch.hflags &= ~HF_SMM_MASK;
 		vcpu->arch.smi_pending = events->smi.pending;
 		if (events->smi.smm_inside_nmi)
 			vcpu->arch.hflags |= HF_SMM_INSIDE_NMI_MASK;