@@ -612,6 +612,11 @@ static inline unsigned long gfn_to_hva_memslot(struct kvm_memory_slot *slot,
return slot->userspace_addr + (gfn - slot->base_gfn) * PAGE_SIZE;
}
+static inline bool gfn_in_memslot(struct kvm_memory_slot *slot, gfn_t gfn)
+{
+ return (gfn >= slot->base_gfn) && (gfn < slot->base_gfn + slot->npages);
+}
+
static inline gpa_t gfn_to_gpa(gfn_t gfn)
{
return (gpa_t)gfn << PAGE_SHIFT;
@@ -940,8 +940,7 @@ static struct kvm_memory_slot *__gfn_to_memslot(struct kvm_memslots *slots,
for (i = 0; i < slots->nmemslots; ++i) {
struct kvm_memory_slot *memslot = &slots->memslots[i];
- if (gfn >= memslot->base_gfn
- && gfn < memslot->base_gfn + memslot->npages)
+ if (gfn_in_memslot(memslot, gfn))
return memslot;
}
return NULL;
@@ -964,8 +963,7 @@ int kvm_is_visible_gfn(struct kvm *kvm, gfn_t gfn)
if (memslot->flags & KVM_MEMSLOT_INVALID)
continue;
- if (gfn >= memslot->base_gfn
- && gfn < memslot->base_gfn + memslot->npages)
+ if (gfn_in_memslot(memslot, gfn))
return 1;
}
return 0;