Lines Matching refs:gfn
287 static void kvmppc_mark_gfn(unsigned long gfn, struct kvm *kvm,
293 if (gfn >= p->base_pfn && gfn < p->base_pfn + p->nr_pfns) {
294 unsigned long index = gfn - p->base_pfn;
306 static void kvmppc_gfn_secure_uvmem_pfn(unsigned long gfn,
309 kvmppc_mark_gfn(gfn, kvm, KVMPPC_GFN_UVMEM_PFN, uvmem_pfn);
313 static void kvmppc_gfn_secure_mem_pfn(unsigned long gfn, struct kvm *kvm)
315 kvmppc_mark_gfn(gfn, kvm, KVMPPC_GFN_MEM_PFN, 0);
319 static void kvmppc_gfn_shared(unsigned long gfn, struct kvm *kvm)
321 kvmppc_mark_gfn(gfn, kvm, KVMPPC_GFN_SHARED, 0);
325 static void kvmppc_gfn_remove(unsigned long gfn, struct kvm *kvm)
327 kvmppc_mark_gfn(gfn, kvm, 0, 0);
331 static bool kvmppc_gfn_is_uvmem_pfn(unsigned long gfn, struct kvm *kvm,
337 if (gfn >= p->base_pfn && gfn < p->base_pfn + p->nr_pfns) {
338 unsigned long index = gfn - p->base_pfn;
353 * starting from *gfn search for the next available GFN that is not yet
354 * transitioned to a secure GFN. return the value of that GFN in *gfn. If a
360 struct kvm *kvm, unsigned long *gfn)
367 if (*gfn >= iter->base_pfn && *gfn < iter->base_pfn + iter->nr_pfns) {
377 for (i = *gfn; i < p->base_pfn + p->nr_pfns; i++) {
381 *gfn = i;
392 unsigned long gfn = memslot->base_gfn;
393 unsigned long end, start = gfn_to_hva(kvm, gfn);
610 unsigned long uvmem_pfn, gfn;
617 gfn = slot->base_gfn;
618 for (i = slot->npages; i; --i, ++gfn, addr += PAGE_SIZE) {
624 pr_err("Can't find VMA for gfn:0x%lx\n", gfn);
631 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, &uvmem_pfn)) {
643 kvmppc_gfn_remove(gfn, kvm);
791 unsigned long gfn = memslot->base_gfn;
798 while (kvmppc_next_nontransitioned_gfn(memslot, kvm, &gfn)) {
800 start = gfn_to_hva(kvm, gfn);
810 (gfn << PAGE_SHIFT), kvm, PAGE_SHIFT, false);
879 unsigned long gfn = gpa >> page_shift;
885 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, &uvmem_pfn)) {
898 pfn = gfn_to_pfn(kvm, gfn);
903 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, &uvmem_pfn)) {
914 kvmppc_gfn_shared(gfn, kvm);
937 unsigned long gfn = gpa >> page_shift;
956 start = gfn_to_hva(kvm, gfn);
962 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, NULL))
1043 unsigned long gfn = gpa >> page_shift;
1061 start = gfn_to_hva(kvm, gfn);
1078 int kvmppc_send_page_to_uv(struct kvm *kvm, unsigned long gfn)
1083 pfn = gfn_to_pfn(kvm, gfn);
1088 if (kvmppc_gfn_is_uvmem_pfn(gfn, kvm, NULL))
1091 ret = uv_page_in(kvm->arch.lpid, pfn << PAGE_SHIFT, gfn << PAGE_SHIFT,