On 03/06/2011 08:28 PM, Avi Kivity wrote: >> static int mapping_level(struct kvm_vcpu *vcpu, gfn_t large_gfn) >> @@ -2155,9 +2166,8 @@ pte_prefetch_gfn_to_memslot(struct kvm_vcpu *vcpu, gfn_t gfn, bool no_dirty_log) >> { >> struct kvm_memory_slot *slot; >> >> - slot = gfn_to_memslot(vcpu->kvm, gfn); >> - if (!slot || slot->flags& KVM_MEMSLOT_INVALID || >> - (no_dirty_log&& slot->dirty_bitmap)) >> + slot = gfn_to_memslot_dirty_bitmap(vcpu, gfn, no_dirty_log); >> + if (slot&& slot->flags& KVM_MEMSLOT_INVALID) >> slot = NULL; >> >> return slot; > > For a unification this adds a lot of code... I think the result is more complicated than the starting point. > After more thinking, i think we can move 'slot->flags& KVM_MEMSLOT_INVALID' into the common function, since the later gva_to_pfn also can filter this out. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html