KVM: MMU: Avoid dropping accessed bit while removing write access
authorTakuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Sun, 5 Dec 2010 16:11:33 +0000 (01:11 +0900)
committerAvi Kivity <avi@redhat.com>
Wed, 12 Jan 2011 09:30:21 +0000 (11:30 +0200)
One more "KVM: MMU: Don't drop accessed bit while updating an spte."

Sptes are accessed by both kvm and hardware.
This patch uses update_spte() to fix the way of removing write access.

Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/mmu.c

index d359500..482a5c0 100644 (file)
@@ -3447,7 +3447,7 @@ void kvm_mmu_slot_remove_write_access(struct kvm *kvm, int slot)
                for (i = 0; i < PT64_ENT_PER_PAGE; ++i)
                        /* avoid RMW */
                        if (is_writable_pte(pt[i]))
-                               pt[i] &= ~PT_WRITABLE_MASK;
+                               update_spte(&pt[i], pt[i] & ~PT_WRITABLE_MASK);
        }
        kvm_flush_remote_tlbs(kvm);
 }