From: Juerg Haefliger Date: Wed, 10 Apr 2019 10:10:00 +0000 (+0200) Subject: UBUNTU: SAUCE: [Fix] x86/KVM/VMX: Add L1D flush logic X-Git-Tag: Ubuntu-4.15.0-49.53~62 X-Git-Url: https://git.proxmox.com/?p=mirror_ubuntu-bionic-kernel.git;a=commitdiff_plain;h=69645814bbf53229a15866e98ccb2b7645aac26f UBUNTU: SAUCE: [Fix] x86/KVM/VMX: Add L1D flush logic BugLink: https://bugs.launchpad.net/bugs/1822760 The backport of upstream commit c595ceee4570 ("x86/KVM/VMX: Add L1D flush logic") incorrectly put the enabling of L1D flushing in kvm_write_guest_virt_helper() instead of kvm_write_guest_virt_system(). Fixes: f0ace387064d ("x86/KVM/VMX: Add L1D flush logic") Signed-off-by: Juerg Haefliger Acked-by: Stefan Bader Acked-by: Kleber Sacilotto de Souza Signed-off-by: Stefan Bader --- diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 058415af8de1..ac17f53812af 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -4681,9 +4681,6 @@ static int kvm_write_guest_virt_helper(gva_t addr, void *val, unsigned int bytes void *data = val; int r = X86EMUL_CONTINUE; - /* kvm_write_guest_virt_system can pull in tons of pages. */ - vcpu->arch.l1tf_flush_l1d = true; - while (bytes) { gpa_t gpa = vcpu->arch.walk_mmu->gva_to_gpa(vcpu, addr, access, @@ -4725,6 +4722,9 @@ static int emulator_write_std(struct x86_emulate_ctxt *ctxt, gva_t addr, void *v int kvm_write_guest_virt_system(struct kvm_vcpu *vcpu, gva_t addr, void *val, unsigned int bytes, struct x86_exception *exception) { + /* kvm_write_guest_virt_system can pull in tons of pages. */ + vcpu->arch.l1tf_flush_l1d = true; + return kvm_write_guest_virt_helper(addr, val, bytes, vcpu, PFERR_WRITE_MASK, exception); }