summaryrefslogtreecommitdiff
path: root/arch/x86/kvm/mmu.h
diff options
context:
space:
mode:
authorJunaid Shahid <junaids@google.com>2018-06-28 00:59:08 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2018-08-06 18:58:52 +0300
commit6e42782f516f05c8030f63308f2457681b1c9919 (patch)
treefd7a55232cc338dfd86687875a26e7a3a8c4ffc6 /arch/x86/kvm/mmu.h
parent9fa72119b24db78d665a4034b5a0d349b0289b08 (diff)
downloadlinux-6e42782f516f05c8030f63308f2457681b1c9919.tar.xz
kvm: x86: Introduce KVM_REQ_LOAD_CR3
The KVM_REQ_LOAD_CR3 request loads the hardware CR3 using the current root_hpa. Signed-off-by: Junaid Shahid <junaids@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/mmu.h')
-rw-r--r--arch/x86/kvm/mmu.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/kvm/mmu.h b/arch/x86/kvm/mmu.h
index 5b408c0ad612..16b7178853ac 100644
--- a/arch/x86/kvm/mmu.h
+++ b/arch/x86/kvm/mmu.h
@@ -85,6 +85,13 @@ static inline int kvm_mmu_reload(struct kvm_vcpu *vcpu)
return kvm_mmu_load(vcpu);
}
+static inline void kvm_mmu_load_cr3(struct kvm_vcpu *vcpu)
+{
+ /* set_cr3() should ensure TLB has been flushed */
+ if (VALID_PAGE(vcpu->arch.mmu.root_hpa))
+ vcpu->arch.mmu.set_cr3(vcpu, vcpu->arch.mmu.root_hpa);
+}
+
/*
* Currently, we have two sorts of write-protection, a) the first one
* write-protects guest page to sync the guest modification, b) another one is