Lines Matching refs:gfn

289 static void kvmppc_mark_gfn(unsigned long gfn, struct kvm *kvm,
295 if (gfn >= p->base_pfn && gfn < p->base_pfn + p->nr_pfns) {
296 unsigned long index = gfn - p->base_pfn;
308 static void kvmppc_gfn_secure_uvmem_pfn(unsigned long gfn,
311 kvmppc_mark_gfn(gfn, kvm, KVMPPC_GFN_UVMEM_PFN, uvmem_pfn);
315 static void kvmppc_gfn_secure_mem_pfn(unsigned long gfn, struct kvm *kvm)
317 kvmppc_mark_gfn(gfn, kvm, KVMPPC_GFN_MEM_PFN, 0);
321 static void kvmppc_gfn_shared(unsigned long gfn, struct kvm *kvm)
323 kvmppc_mark_gfn(gfn, kvm, KVMPPC_GFN_SHARED, 0);
327 static void kvmppc_gfn_remove(unsigned long gfn, struct kvm *kvm)
329 kvmppc_mark_gfn(gfn, kvm, 0, 0);
333 static bool kvmppc_gfn_is_uvmem_pfn(unsigned long gfn, struct kvm *kvm,
339 if (gfn >= p->base_pfn && gfn < p->base_pfn + p->nr_pfns) {
340 unsigned long index = gfn - p->base_pfn;
355 * starting from *gfn search for the next available GFN that is not yet
356 * transitioned to a secure GFN. return the value of that GFN in *gfn. If a
362 struct kvm *kvm, unsigned long *gfn)
369 if (*gfn >= iter->base_pfn && *gfn < iter->base_pfn + iter->nr_pfns) {
379 for (i = *gfn; i < p->base_pfn + p->nr_pfns; i++) {
383 *gfn = i;
394 unsigned long gfn = memslot->base_gfn;
395 unsigned long end, start = gfn_to_hva(kvm, gfn);
617 unsigned long uvmem_pfn, gfn;
624 gfn = slot->base_gfn;
625 for (i = slot->npages; i; --i, ++gfn, addr += PAGE_SIZE) {
631 pr_err("Can't find VMA for gfn:0x%lx\n", gfn);
638 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, &uvmem_pfn)) {
650 kvmppc_gfn_remove(gfn, kvm);
797 unsigned long gfn = memslot->base_gfn;
804 while (kvmppc_next_nontransitioned_gfn(memslot, kvm, &gfn)) {
806 start = gfn_to_hva(kvm, gfn);
816 (gfn << PAGE_SHIFT), kvm, PAGE_SHIFT, false);
885 unsigned long gfn = gpa >> page_shift;
891 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, &uvmem_pfn)) {
904 pfn = gfn_to_pfn(kvm, gfn);
909 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, &uvmem_pfn)) {
920 kvmppc_gfn_shared(gfn, kvm);
943 unsigned long gfn = gpa >> page_shift;
962 start = gfn_to_hva(kvm, gfn);
968 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, NULL))
1049 unsigned long gfn = gpa >> page_shift;
1067 start = gfn_to_hva(kvm, gfn);
1084 int kvmppc_send_page_to_uv(struct kvm *kvm, unsigned long gfn)
1089 pfn = gfn_to_pfn(kvm, gfn);
1094 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, NULL))
1097 ret = uv_page_in(kvm->arch.lpid, pfn << PAGE_SHIFT, gfn << PAGE_SHIFT,