OSDN Git Service

KVM: MMU: Add drop_large_spte() helper
authorAvi Kivity <avi@redhat.com>
Tue, 13 Jul 2010 11:27:06 +0000 (14:27 +0300)
committerAvi Kivity <avi@redhat.com>
Mon, 2 Aug 2010 03:40:42 +0000 (06:40 +0300)
To clarify spte fetching code, move large spte handling into a helper.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
arch/x86/kvm/mmu.c
arch/x86/kvm/paging_tmpl.h

index 5a6019a..b75d6cb 100644 (file)
@@ -1492,6 +1492,14 @@ static void link_shadow_page(u64 *sptep, struct kvm_mmu_page *sp)
        __set_spte(sptep, spte);
 }
 
+static void drop_large_spte(struct kvm_vcpu *vcpu, u64 *sptep)
+{
+       if (is_large_pte(*sptep)) {
+               drop_spte(vcpu->kvm, sptep, shadow_trap_nonpresent_pte);
+               kvm_flush_remote_tlbs(vcpu->kvm);
+       }
+}
+
 static void kvm_mmu_page_unlink_children(struct kvm *kvm,
                                         struct kvm_mmu_page *sp)
 {
index 36dc074..0fb7068 100644 (file)
@@ -360,10 +360,7 @@ static u64 *FNAME(fetch)(struct kvm_vcpu *vcpu, gva_t addr,
                        kvm_flush_remote_tlbs(vcpu->kvm);
                }
 
-               if (is_large_pte(*sptep)) {
-                       drop_spte(vcpu->kvm, sptep, shadow_trap_nonpresent_pte);
-                       kvm_flush_remote_tlbs(vcpu->kvm);
-               }
+               drop_large_spte(vcpu, sptep);
 
                if (level <= gw->level) {
                        direct = 1;