KVM: x86: MMU: Remove mapping_level_dirty_bitmap()
authorTakuya Yoshikawa <yoshikawa_takuya_b1@lab.ntt.co.jp>
Fri, 16 Oct 2015 08:07:01 +0000 (17:07 +0900)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 16 Oct 2015 08:34:01 +0000 (10:34 +0200)
Now that it has only one caller, and its name is not so helpful for
readers, remove it.  The new memslot_valid_for_gpte() function
makes it possible to share the common code between
gfn_to_memslot_dirty_bitmap() and mapping_level().

Signed-off-by: Takuya Yoshikawa <yoshikawa_takuya_b1@lab.ntt.co.jp>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/mmu.c

index 890cd694c9a2867a2e84749b1ab644fe6f7b3a3c..09833b04fc973d1dc2f04147c32bce3c1981c7de 100644 (file)
@@ -851,6 +851,17 @@ static int host_mapping_level(struct kvm *kvm, gfn_t gfn)
        return ret;
 }
 
+static inline bool memslot_valid_for_gpte(struct kvm_memory_slot *slot,
+                                         bool no_dirty_log)
+{
+       if (!slot || slot->flags & KVM_MEMSLOT_INVALID)
+               return false;
+       if (no_dirty_log && slot->dirty_bitmap)
+               return false;
+
+       return true;
+}
+
 static struct kvm_memory_slot *
 gfn_to_memslot_dirty_bitmap(struct kvm_vcpu *vcpu, gfn_t gfn,
                            bool no_dirty_log)
@@ -858,25 +869,22 @@ gfn_to_memslot_dirty_bitmap(struct kvm_vcpu *vcpu, gfn_t gfn,
        struct kvm_memory_slot *slot;
 
        slot = kvm_vcpu_gfn_to_memslot(vcpu, gfn);
-       if (!slot || slot->flags & KVM_MEMSLOT_INVALID ||
-             (no_dirty_log && slot->dirty_bitmap))
+       if (!memslot_valid_for_gpte(slot, no_dirty_log))
                slot = NULL;
 
        return slot;
 }
 
-static bool mapping_level_dirty_bitmap(struct kvm_vcpu *vcpu, gfn_t large_gfn)
-{
-       return !gfn_to_memslot_dirty_bitmap(vcpu, large_gfn, true);
-}
-
 static int mapping_level(struct kvm_vcpu *vcpu, gfn_t large_gfn,
                         bool *force_pt_level)
 {
        int host_level, level, max_level;
+       struct kvm_memory_slot *slot;
+
+       slot = kvm_vcpu_gfn_to_memslot(vcpu, large_gfn);
 
        if (likely(!*force_pt_level))
-               *force_pt_level = mapping_level_dirty_bitmap(vcpu, large_gfn);
+               *force_pt_level = !memslot_valid_for_gpte(slot, true);
        if (unlikely(*force_pt_level))
                return PT_PAGE_TABLE_LEVEL;