aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/x86.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kvm/x86.c')
-rw-r--r--arch/x86/kvm/x86.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 99b738028fc0..813ebf1e55a0 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3095,13 +3095,11 @@ static void write_protect_slot(struct kvm *kvm,
3095 3095
3096 /* Not many dirty pages compared to # of shadow pages. */ 3096 /* Not many dirty pages compared to # of shadow pages. */
3097 if (nr_dirty_pages < kvm->arch.n_used_mmu_pages) { 3097 if (nr_dirty_pages < kvm->arch.n_used_mmu_pages) {
3098 unsigned long gfn_offset; 3098 gfn_t offset;
3099 3099
3100 for_each_set_bit(gfn_offset, dirty_bitmap, memslot->npages) { 3100 for_each_set_bit(offset, dirty_bitmap, memslot->npages)
3101 unsigned long gfn = memslot->base_gfn + gfn_offset; 3101 kvm_mmu_write_protect_pt_masked(kvm, memslot, offset, 1);
3102 3102
3103 kvm_mmu_rmap_write_protect(kvm, gfn, memslot);
3104 }
3105 kvm_flush_remote_tlbs(kvm); 3103 kvm_flush_remote_tlbs(kvm);
3106 } else 3104 } else
3107 kvm_mmu_slot_remove_write_access(kvm, memslot->id); 3105 kvm_mmu_slot_remove_write_access(kvm, memslot->id);