summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/mmu.c
diff options
context:
space:
mode:
authorTakuya Yoshikawa2013-03-12 09:44:40 +0100
committerGleb Natapov2013-03-14 09:21:10 +0100
commit95b0430d1a53541076ffbaf453f8b49a547cceba (patch)
tree340dd5870cd20b6b2acef3182dabed47a7a72927 /arch/x86/kvm/mmu.c
parentKVM: nVMX: Add preemption timer support (diff)
downloadkernel-qcow2-linux-95b0430d1a53541076ffbaf453f8b49a547cceba.tar.gz
kernel-qcow2-linux-95b0430d1a53541076ffbaf453f8b49a547cceba.tar.xz
kernel-qcow2-linux-95b0430d1a53541076ffbaf453f8b49a547cceba.zip
KVM: MMU: Mark sp mmio cached when creating mmio spte
This will be used not to zap unrelated mmu pages when creating/moving a memory slot later. Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Takuya Yoshikawa <yoshikawa_takuya_b1@lab.ntt.co.jp> Signed-off-by: Gleb Natapov <gleb@redhat.com>
Diffstat (limited to 'arch/x86/kvm/mmu.c')
-rw-r--r--arch/x86/kvm/mmu.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index fdacabba6f62..de45ec195346 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -199,8 +199,11 @@ EXPORT_SYMBOL_GPL(kvm_mmu_set_mmio_spte_mask);
static void mark_mmio_spte(u64 *sptep, u64 gfn, unsigned access)
{
+ struct kvm_mmu_page *sp = page_header(__pa(sptep));
+
access &= ACC_WRITE_MASK | ACC_USER_MASK;
+ sp->mmio_cached = true;
trace_mark_mmio_spte(sptep, gfn, access);
mmu_spte_set(sptep, shadow_mmio_mask | access | gfn << PAGE_SHIFT);
}