Signed-off-by: Avi Kivity <[email protected]>
---
arch/x86/kvm/mmu.c | 8 +-------
virt/kvm/kvm_main.c | 2 ++
2 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 0e1faec..85ed48a 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -1138,7 +1138,6 @@ static int kvm_set_pte_rmapp(struct kvm *kvm, unsigned
long *rmapp,
{
u64 *sptep;
struct rmap_iterator iter;
- int need_flush = 0;
u64 new_spte;
pte_t *ptep = (pte_t *)data;
pfn_t new_pfn;
@@ -1150,8 +1149,6 @@ static int kvm_set_pte_rmapp(struct kvm *kvm, unsigned
long *rmapp,
BUG_ON(!is_shadow_present_pte(*sptep));
rmap_printk("kvm_set_pte_rmapp: spte %p %llx\n", sptep, *sptep);
- need_flush = 1;
-
if (pte_write(*ptep)) {
drop_spte(kvm, sptep);
sptep = rmap_get_first(*rmapp, &iter);
@@ -1167,12 +1164,9 @@ static int kvm_set_pte_rmapp(struct kvm *kvm, unsigned
long *rmapp,
mmu_spte_set(sptep, new_spte);
sptep = rmap_get_next(&iter);
}
- }
- if (need_flush)
kvm_mark_tlb_dirty(kvm);
-
- kvm_cond_flush_remote_tlbs(kvm);
+ }
return 0;
}
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 9f6d15d..b840979 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -323,6 +323,8 @@ static void kvm_mmu_notifier_change_pte(struct mmu_notifier
*mn,
kvm_set_spte_hva(kvm, address, pte);
spin_unlock(&kvm->mmu_lock);
srcu_read_unlock(&kvm->srcu, idx);
+
+ kvm_cond_flush_remote_tlbs(kvm);
}
static void kvm_mmu_notifier_invalidate_range_start(struct mmu_notifier *mn,
--
1.7.10.1
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html