summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm
diff options
context:
space:
mode:
authorSean Christopherson <sean.j.christopherson@intel.com>2020-02-18 13:07:35 -0800
committerPaolo Bonzini <pbonzini@redhat.com>2020-03-16 17:57:29 +0100
commitcec37648f40b0ef7e6260ffa588c51fd3754262b (patch)
tree084df049fb387dbedcca00708fccb6ce1bae795b /arch/x86/kvm
parentb3594ffbf932c8e8b23201cdc2c173708a4472dc (diff)
downloadlinux-stable-cec37648f40b0ef7e6260ffa588c51fd3754262b.tar.gz
linux-stable-cec37648f40b0ef7e6260ffa588c51fd3754262b.tar.bz2
linux-stable-cec37648f40b0ef7e6260ffa588c51fd3754262b.zip
KVM: x86/mmu: Use range-based TLB flush for dirty log memslot flush
Use the with_address() variant when performing a TLB flush for a specific memslot via kvm_arch_flush_remote_tlbs_memslot(), i.e. when flushing after clearing dirty bits during KVM_{GET,CLEAR}_DIRTY_LOG. This aligns all dirty log memslot-specific TLB flushes to use the with_address() variant and paves the way for consolidating the relevant code. Note, moving to the with_address() variant only affects functionality when running as a HyperV guest. Cc: Vitaly Kuznetsov <vkuznets@redhat.com> Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm')
-rw-r--r--arch/x86/kvm/mmu/mmu.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
index 2ebac21ab024..7268c6ffb643 100644
--- a/arch/x86/kvm/mmu/mmu.c
+++ b/arch/x86/kvm/mmu/mmu.c
@@ -5942,7 +5942,8 @@ void kvm_arch_flush_remote_tlbs_memslot(struct kvm *kvm,
* kvm_mmu_slot_remove_write_access().
*/
lockdep_assert_held(&kvm->slots_lock);
- kvm_flush_remote_tlbs(kvm);
+ kvm_flush_remote_tlbs_with_address(kvm, memslot->base_gfn,
+ memslot->npages);
}
void kvm_mmu_slot_leaf_clear_dirty(struct kvm *kvm,