Lines Matching defs:slot
302 unsigned slot;
318 for (slot = 0; slot < user_return_msrs_global.nr; ++slot) {
319 values = &msrs->values[slot];
321 wrmsrl(user_return_msrs_global.msrs[slot], values->host);
343 void kvm_define_user_return_msr(unsigned slot, u32 msr)
345 BUG_ON(slot >= KVM_MAX_NR_USER_RETURN_MSRS);
346 user_return_msrs_global.msrs[slot] = msr;
347 if (slot >= user_return_msrs_global.nr)
348 user_return_msrs_global.nr = slot + 1;
366 int kvm_set_user_return_msr(unsigned slot, u64 value, u64 mask)
372 value = (value & mask) | (msrs->values[slot].host & ~mask);
373 if (value == msrs->values[slot].curr)
375 err = wrmsrl_safe(user_return_msrs_global.msrs[slot], value);
379 msrs->values[slot].curr = value;
10711 struct kvm_memory_slot *slot;
10717 slot = id_to_memslot(slots, id);
10719 if (slot && slot->npages)
10723 * MAP_SHARED to prevent internal slot pages from being moved
10731 if (!slot || !slot->npages)
10734 old_npages = slot->npages;
10741 m.slot = id | (i << 16);
10792 void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *slot)
10797 kvfree(slot->arch.rmap[i]);
10798 slot->arch.rmap[i] = NULL;
10803 kvfree(slot->arch.lpage_info[i - 1]);
10804 slot->arch.lpage_info[i - 1] = NULL;
10807 kvm_page_track_free_memslot(slot);
10810 static int kvm_alloc_memslot_metadata(struct kvm_memory_slot *slot,
10820 memset(&slot->arch, 0, sizeof(slot->arch));
10828 lpages = gfn_to_index(slot->base_gfn + npages - 1,
10829 slot->base_gfn, level) + 1;
10831 slot->arch.rmap[i] =
10832 __vcalloc(lpages, sizeof(*slot->arch.rmap[i]),
10834 if (!slot->arch.rmap[i])
10843 slot->arch.lpage_info[i - 1] = linfo;
10845 if (slot->base_gfn & (KVM_PAGES_PER_HPAGE(level) - 1))
10847 if ((slot->base_gfn + npages) & (KVM_PAGES_PER_HPAGE(level) - 1))
10849 ugfn = slot->userspace_addr >> PAGE_SHIFT;
10852 * other, disable large page support for this slot.
10854 if ((slot->base_gfn ^ ugfn) & (KVM_PAGES_PER_HPAGE(level) - 1)) {
10862 if (kvm_page_track_create_memslot(slot, npages))
10869 kvfree(slot->arch.rmap[i]);
10870 slot->arch.rmap[i] = NULL;
10874 kvfree(slot->arch.lpage_info[i - 1]);
10875 slot->arch.lpage_info[i - 1] = NULL;
10913 * Nothing to do for RO slots or CREATE/MOVE/DELETE of a slot.
10941 * Enable or disable dirty logging for the slot.
10944 * slot have been zapped so no dirty logging updates are needed for
10945 * the old slot.
10946 * For KVM_MR_CREATE and KVM_MR_MOVE, once the new slot is visible
10948 * properties of the new slot and do not need to be updated here.
10954 * for sptes in the slot in order to prevent unnecessary GPA
10962 * be created for this slot until the end of the logging.
11018 struct kvm_memory_slot *slot)
11020 kvm_page_track_flush_slot(kvm, slot);