• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/virt/kvm/

Lines Matching defs:kvm

33 static int kvm_iommu_unmap_memslots(struct kvm *kvm);
34 static void kvm_iommu_put_pages(struct kvm *kvm,
37 static pfn_t kvm_pin_pages(struct kvm *kvm, struct kvm_memory_slot *slot,
43 pfn = gfn_to_pfn_memslot(kvm, slot, gfn);
51 gfn_to_pfn_memslot(kvm, slot, gfn++);
56 int kvm_iommu_map_pages(struct kvm *kvm, struct kvm_memory_slot *slot)
61 struct iommu_domain *domain = kvm->arch.iommu_domain;
72 if (kvm->arch.iommu_flags & KVM_IOMMU_CACHE_COHERENCY)
86 page_size = kvm_host_page_size(kvm, gfn);
100 pfn = kvm_pin_pages(kvm, slot, gfn, page_size);
123 kvm_iommu_put_pages(kvm, slot->base_gfn, gfn);
127 static int kvm_iommu_map_memslots(struct kvm *kvm)
132 idx = srcu_read_lock(&kvm->srcu);
133 slots = kvm_memslots(kvm);
136 r = kvm_iommu_map_pages(kvm, &slots->memslots[i]);
140 srcu_read_unlock(&kvm->srcu, idx);
145 int kvm_assign_device(struct kvm *kvm,
149 struct iommu_domain *domain = kvm->arch.iommu_domain;
170 last_flags = kvm->arch.iommu_flags;
171 if (iommu_domain_has_cap(kvm->arch.iommu_domain,
173 kvm->arch.iommu_flags |= KVM_IOMMU_CACHE_COHERENCY;
176 if ((last_flags ^ kvm->arch.iommu_flags) ==
178 kvm_iommu_unmap_memslots(kvm);
179 r = kvm_iommu_map_memslots(kvm);
192 kvm_iommu_unmap_memslots(kvm);
196 int kvm_deassign_device(struct kvm *kvm,
199 struct iommu_domain *domain = kvm->arch.iommu_domain;
221 int kvm_iommu_map_guest(struct kvm *kvm)
230 kvm->arch.iommu_domain = iommu_domain_alloc();
231 if (!kvm->arch.iommu_domain)
234 r = kvm_iommu_map_memslots(kvm);
241 kvm_iommu_unmap_memslots(kvm);
245 static void kvm_unpin_pages(struct kvm *kvm, pfn_t pfn, unsigned long npages)
253 static void kvm_iommu_put_pages(struct kvm *kvm,
261 domain = kvm->arch.iommu_domain;
282 kvm_unpin_pages(kvm, pfn, unmap_pages);
288 static int kvm_iommu_unmap_memslots(struct kvm *kvm)
293 idx = srcu_read_lock(&kvm->srcu);
294 slots = kvm_memslots(kvm);
297 kvm_iommu_put_pages(kvm, slots->memslots[i].base_gfn,
300 srcu_read_unlock(&kvm->srcu, idx);
305 int kvm_iommu_unmap_guest(struct kvm *kvm)
307 struct iommu_domain *domain = kvm->arch.iommu_domain;
313 kvm_iommu_unmap_memslots(kvm);