Lines Matching refs:gfn
41 pfn_t (*kvm_mips_gfn_to_pfn)(struct kvm *kvm, gfn_t gfn);
144 static int kvm_mips_map_page(struct kvm *kvm, gfn_t gfn) in kvm_mips_map_page() argument
149 if (kvm->arch.guest_pmap[gfn] != KVM_INVALID_PAGE) in kvm_mips_map_page()
153 pfn = kvm_mips_gfn_to_pfn(kvm, gfn); in kvm_mips_map_page()
156 kvm_err("Couldn't get pfn for gfn %#" PRIx64 "!\n", gfn); in kvm_mips_map_page()
161 kvm->arch.guest_pmap[gfn] = pfn; in kvm_mips_map_page()
171 gfn_t gfn; in kvm_mips_translate_guest_kseg0_to_hpa() local
181 gfn = (KVM_GUEST_CPHYSADDR(gva) >> PAGE_SHIFT); in kvm_mips_translate_guest_kseg0_to_hpa()
183 if (gfn >= kvm->arch.guest_pmap_npages) { in kvm_mips_translate_guest_kseg0_to_hpa()
184 kvm_err("%s: Invalid gfn: %#llx, GVA: %#lx\n", __func__, gfn, in kvm_mips_translate_guest_kseg0_to_hpa()
189 if (kvm_mips_map_page(vcpu->kvm, gfn) < 0) in kvm_mips_translate_guest_kseg0_to_hpa()
192 return (kvm->arch.guest_pmap[gfn] << PAGE_SHIFT) + offset; in kvm_mips_translate_guest_kseg0_to_hpa()
264 gfn_t gfn; in kvm_mips_handle_kseg0_tlb_fault() local
278 gfn = (KVM_GUEST_CPHYSADDR(badvaddr) >> PAGE_SHIFT); in kvm_mips_handle_kseg0_tlb_fault()
279 if (gfn >= kvm->arch.guest_pmap_npages) { in kvm_mips_handle_kseg0_tlb_fault()
281 gfn, badvaddr); in kvm_mips_handle_kseg0_tlb_fault()
285 even = !(gfn & 0x1); in kvm_mips_handle_kseg0_tlb_fault()
288 if (kvm_mips_map_page(vcpu->kvm, gfn) < 0) in kvm_mips_handle_kseg0_tlb_fault()
291 if (kvm_mips_map_page(vcpu->kvm, gfn ^ 0x1) < 0) in kvm_mips_handle_kseg0_tlb_fault()
295 pfn0 = kvm->arch.guest_pmap[gfn]; in kvm_mips_handle_kseg0_tlb_fault()
296 pfn1 = kvm->arch.guest_pmap[gfn ^ 0x1]; in kvm_mips_handle_kseg0_tlb_fault()
298 pfn0 = kvm->arch.guest_pmap[gfn ^ 0x1]; in kvm_mips_handle_kseg0_tlb_fault()
299 pfn1 = kvm->arch.guest_pmap[gfn]; in kvm_mips_handle_kseg0_tlb_fault()