]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2019 07:44:10 +0000 (08:44 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2019 07:44:10 +0000 (08:44 +0100)
added patches:
revert-kvm-nvmx-reset-cache-shadows-when-switching-loaded-vmcs.patch

queue-4.14/revert-kvm-nvmx-reset-cache-shadows-when-switching-loaded-vmcs.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/revert-kvm-nvmx-reset-cache-shadows-when-switching-loaded-vmcs.patch b/queue-4.14/revert-kvm-nvmx-reset-cache-shadows-when-switching-loaded-vmcs.patch
new file mode 100644 (file)
index 0000000..98b735b
--- /dev/null
@@ -0,0 +1,55 @@
+From 97dd4afdf14f67ed9ab1b270bae4653194ca233d Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Thu, 5 Dec 2019 08:25:45 +0100
+Subject: Revert "KVM: nVMX: reset cache/shadows when switching loaded VMCS"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+This reverts commit 9f0b41be6aff47c24c6431bdc76f86b9cd647a0d which is
+commit b7031fd40fcc741b0f9b0c04c8d844e445858b84 upstream.
+
+It should not have been selected for a stable kernel as it breaks the
+nVMX regression tests.
+
+Reported-by: Jack Wang <jack.wang.usish@gmail.com>
+Reported-by: Paolo Bonzini <pbonzini@redhat.com>
+Cc: Jim Mattson <jmattson@google.com>
+Cc: Sean Christopherson <sean.j.christopherson@intel.com>
+Cc: Jim Mattson <jmattson@google.com>
+Cc: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/x86/kvm/vmx.c |    8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/arch/x86/kvm/vmx.c
++++ b/arch/x86/kvm/vmx.c
+@@ -10000,10 +10000,6 @@ static void vmx_switch_vmcs(struct kvm_v
+       vmx_vcpu_load(vcpu, cpu);
+       vcpu->cpu = cpu;
+       put_cpu();
+-
+-      vm_entry_controls_reset_shadow(vmx);
+-      vm_exit_controls_reset_shadow(vmx);
+-      vmx_segment_cache_clear(vmx);
+ }
+ /*
+@@ -11432,6 +11428,7 @@ static int enter_vmx_non_root_mode(struc
+               vmx->nested.vmcs01_debugctl = vmcs_read64(GUEST_IA32_DEBUGCTL);
+       vmx_switch_vmcs(vcpu, &vmx->nested.vmcs02);
++      vmx_segment_cache_clear(vmx);
+       if (prepare_vmcs02(vcpu, vmcs12, from_vmentry, &exit_qual)) {
+               leave_guest_mode(vcpu);
+@@ -12175,6 +12172,9 @@ static void nested_vmx_vmexit(struct kvm
+       }
+       vmx_switch_vmcs(vcpu, &vmx->vmcs01);
++      vm_entry_controls_reset_shadow(vmx);
++      vm_exit_controls_reset_shadow(vmx);
++      vmx_segment_cache_clear(vmx);
+       /* Update any VMCS fields that might have changed while L2 ran */
+       vmcs_write32(VM_EXIT_MSR_LOAD_COUNT, vmx->msr_autoload.host.nr);
index 43eacf281a1d6196edb5edcb2f17b5135c5ec14c..bbb4664c1d8397cca06d7c250451c5615c2c6415 100644 (file)
@@ -1,3 +1,4 @@
+revert-kvm-nvmx-reset-cache-shadows-when-switching-loaded-vmcs.patch
 clk-meson-gxbb-let-sar_adc_clk_div-set-the-parent-cl.patch
 asoc-msm8916-wcd-analog-fix-rx1-selection-in-rdac2-m.patch
 asoc-compress-fix-unsigned-integer-overflow-check.patch