Lines Matching refs:gfn
287 static void kvmppc_mark_gfn(unsigned long gfn, struct kvm *kvm, in kvmppc_mark_gfn() argument
293 if (gfn >= p->base_pfn && gfn < p->base_pfn + p->nr_pfns) { in kvmppc_mark_gfn()
294 unsigned long index = gfn - p->base_pfn; in kvmppc_mark_gfn()
306 static void kvmppc_gfn_secure_uvmem_pfn(unsigned long gfn, in kvmppc_gfn_secure_uvmem_pfn() argument
309 kvmppc_mark_gfn(gfn, kvm, KVMPPC_GFN_UVMEM_PFN, uvmem_pfn); in kvmppc_gfn_secure_uvmem_pfn()
313 static void kvmppc_gfn_secure_mem_pfn(unsigned long gfn, struct kvm *kvm) in kvmppc_gfn_secure_mem_pfn() argument
315 kvmppc_mark_gfn(gfn, kvm, KVMPPC_GFN_MEM_PFN, 0); in kvmppc_gfn_secure_mem_pfn()
319 static void kvmppc_gfn_shared(unsigned long gfn, struct kvm *kvm) in kvmppc_gfn_shared() argument
321 kvmppc_mark_gfn(gfn, kvm, KVMPPC_GFN_SHARED, 0); in kvmppc_gfn_shared()
325 static void kvmppc_gfn_remove(unsigned long gfn, struct kvm *kvm) in kvmppc_gfn_remove() argument
327 kvmppc_mark_gfn(gfn, kvm, 0, 0); in kvmppc_gfn_remove()
331 static bool kvmppc_gfn_is_uvmem_pfn(unsigned long gfn, struct kvm *kvm, in kvmppc_gfn_is_uvmem_pfn() argument
337 if (gfn >= p->base_pfn && gfn < p->base_pfn + p->nr_pfns) { in kvmppc_gfn_is_uvmem_pfn()
338 unsigned long index = gfn - p->base_pfn; in kvmppc_gfn_is_uvmem_pfn()
360 struct kvm *kvm, unsigned long *gfn) in kvmppc_next_nontransitioned_gfn() argument
367 if (*gfn >= iter->base_pfn && *gfn < iter->base_pfn + iter->nr_pfns) { in kvmppc_next_nontransitioned_gfn()
377 for (i = *gfn; i < p->base_pfn + p->nr_pfns; i++) { in kvmppc_next_nontransitioned_gfn()
381 *gfn = i; in kvmppc_next_nontransitioned_gfn()
392 unsigned long gfn = memslot->base_gfn; in kvmppc_memslot_page_merge() local
393 unsigned long end, start = gfn_to_hva(kvm, gfn); in kvmppc_memslot_page_merge()
607 unsigned long uvmem_pfn, gfn; in kvmppc_uvmem_drop_pages() local
614 gfn = slot->base_gfn; in kvmppc_uvmem_drop_pages()
615 for (i = slot->npages; i; --i, ++gfn, addr += PAGE_SIZE) { in kvmppc_uvmem_drop_pages()
621 pr_err("Can't find VMA for gfn:0x%lx\n", gfn); in kvmppc_uvmem_drop_pages()
628 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, &uvmem_pfn)) { in kvmppc_uvmem_drop_pages()
640 kvmppc_gfn_remove(gfn, kvm); in kvmppc_uvmem_drop_pages()
788 unsigned long gfn = memslot->base_gfn; in kvmppc_uv_migrate_mem_slot() local
795 while (kvmppc_next_nontransitioned_gfn(memslot, kvm, &gfn)) { in kvmppc_uv_migrate_mem_slot()
797 start = gfn_to_hva(kvm, gfn); in kvmppc_uv_migrate_mem_slot()
807 (gfn << PAGE_SHIFT), kvm, PAGE_SHIFT, false); in kvmppc_uv_migrate_mem_slot()
876 unsigned long gfn = gpa >> page_shift; in kvmppc_share_page() local
882 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, &uvmem_pfn)) { in kvmppc_share_page()
895 pfn = gfn_to_pfn(kvm, gfn); in kvmppc_share_page()
900 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, &uvmem_pfn)) { in kvmppc_share_page()
911 kvmppc_gfn_shared(gfn, kvm); in kvmppc_share_page()
934 unsigned long gfn = gpa >> page_shift; in kvmppc_h_svm_page_in() local
953 start = gfn_to_hva(kvm, gfn); in kvmppc_h_svm_page_in()
959 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, NULL)) in kvmppc_h_svm_page_in()
1040 unsigned long gfn = gpa >> page_shift; in kvmppc_h_svm_page_out() local
1058 start = gfn_to_hva(kvm, gfn); in kvmppc_h_svm_page_out()
1075 int kvmppc_send_page_to_uv(struct kvm *kvm, unsigned long gfn) in kvmppc_send_page_to_uv() argument
1080 pfn = gfn_to_pfn(kvm, gfn); in kvmppc_send_page_to_uv()
1085 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, NULL)) in kvmppc_send_page_to_uv()
1088 ret = uv_page_in(kvm->arch.lpid, pfn << PAGE_SHIFT, gfn << PAGE_SHIFT, in kvmppc_send_page_to_uv()