Lines Matching refs:slot
249 struct kvm_memory_slot *slot; member
580 static inline bool kvm_slot_dirty_track_enabled(const struct kvm_memory_slot *slot) in kvm_slot_dirty_track_enabled() argument
582 return slot->flags & KVM_MEM_LOG_DIRTY_PAGES; in kvm_slot_dirty_track_enabled()
983 struct kvm_memory_slot *slot; in id_to_memslot() local
986 hash_for_each_possible(slots->id_hash, slot, id_node[idx], id) { in id_to_memslot()
987 if (slot->id == id) in id_to_memslot()
988 return slot; in id_to_memslot()
998 struct kvm_memory_slot *slot; member
1007 iter->slot = container_of(iter->node, struct kvm_memory_slot, gfn_node[iter->slots->node_idx]); in kvm_memslot_iter_next()
1016 struct kvm_memory_slot *slot; in kvm_memslot_iter_start() local
1026 slot = container_of(tmp, struct kvm_memory_slot, gfn_node[idx]); in kvm_memslot_iter_start()
1027 if (start < slot->base_gfn) { in kvm_memslot_iter_start()
1054 iter->slot = container_of(iter->node, struct kvm_memory_slot, gfn_node[idx]); in kvm_memslot_iter_start()
1065 if (iter->slot->base_gfn + iter->slot->npages <= start) in kvm_memslot_iter_start()
1079 return iter->slot->base_gfn < end; in kvm_memslot_iter_is_valid()
1110 void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *slot);
1124 struct kvm_memory_slot *slot);
1126 int gfn_to_page_many_atomic(struct kvm_memory_slot *slot, gfn_t gfn,
1132 unsigned long gfn_to_hva_memslot(struct kvm_memory_slot *slot, gfn_t gfn);
1133 unsigned long gfn_to_hva_memslot_prot(struct kvm_memory_slot *slot, gfn_t gfn,
1141 kvm_pfn_t gfn_to_pfn_memslot(const struct kvm_memory_slot *slot, gfn_t gfn);
1142 kvm_pfn_t gfn_to_pfn_memslot_atomic(const struct kvm_memory_slot *slot, gfn_t gfn);
1143 kvm_pfn_t __gfn_to_pfn_memslot(const struct kvm_memory_slot *slot, gfn_t gfn,
1384 struct kvm_memory_slot *slot,
1619 try_get_memslot(struct kvm_memory_slot *slot, gfn_t gfn) in try_get_memslot() argument
1621 if (!slot) in try_get_memslot()
1624 if (gfn >= slot->base_gfn && gfn < slot->base_gfn + slot->npages) in try_get_memslot()
1625 return slot; in try_get_memslot()
1640 struct kvm_memory_slot *slot; in search_memslots() local
1644 slot = NULL; in search_memslots()
1646 slot = container_of(node, struct kvm_memory_slot, gfn_node[idx]); in search_memslots()
1647 if (gfn >= slot->base_gfn) { in search_memslots()
1648 if (gfn < slot->base_gfn + slot->npages) in search_memslots()
1649 return slot; in search_memslots()
1655 return approx ? slot : NULL; in search_memslots()
1661 struct kvm_memory_slot *slot; in ____gfn_to_memslot() local
1663 slot = (struct kvm_memory_slot *)atomic_long_read(&slots->last_used_slot); in ____gfn_to_memslot()
1664 slot = try_get_memslot(slot, gfn); in ____gfn_to_memslot()
1665 if (slot) in ____gfn_to_memslot()
1666 return slot; in ____gfn_to_memslot()
1668 slot = search_memslots(slots, gfn, approx); in ____gfn_to_memslot()
1669 if (slot) { in ____gfn_to_memslot()
1670 atomic_long_set(&slots->last_used_slot, (unsigned long)slot); in ____gfn_to_memslot()
1671 return slot; in ____gfn_to_memslot()
1689 __gfn_to_hva_memslot(const struct kvm_memory_slot *slot, gfn_t gfn) in __gfn_to_hva_memslot() argument
1697 unsigned long offset = gfn - slot->base_gfn; in __gfn_to_hva_memslot()
1698 offset = array_index_nospec(offset, slot->npages); in __gfn_to_hva_memslot()
1699 return slot->userspace_addr + offset * PAGE_SIZE; in __gfn_to_hva_memslot()
1708 hva_to_gfn_memslot(unsigned long hva, struct kvm_memory_slot *slot) in hva_to_gfn_memslot() argument
1710 gfn_t gfn_offset = (hva - slot->userspace_addr) >> PAGE_SHIFT; in hva_to_gfn_memslot()
1712 return slot->base_gfn + gfn_offset; in hva_to_gfn_memslot()