Lines Matching refs:gfn

87 	gfn_t gfn;
105 gfn_t gfn;
151 static void gvt_unpin_guest_page(struct intel_vgpu *vgpu, unsigned long gfn,
163 unsigned long cur_gfn = gfn + npage;
171 static int gvt_pin_guest_page(struct intel_vgpu *vgpu, unsigned long gfn,
186 unsigned long cur_gfn = gfn + npage;
192 gvt_vgpu_err("vfio_pin_pages failed for gfn 0x%lx, ret %d\n",
217 gvt_unpin_guest_page(vgpu, gfn, npage * PAGE_SIZE);
221 static int gvt_dma_map_page(struct intel_vgpu *vgpu, unsigned long gfn,
228 ret = gvt_pin_guest_page(vgpu, gfn, size, &page);
237 gvt_unpin_guest_page(vgpu, gfn, size);
244 static void gvt_dma_unmap_page(struct intel_vgpu *vgpu, unsigned long gfn,
250 gvt_unpin_guest_page(vgpu, gfn, size);
272 static struct gvt_dma *__gvt_cache_find_gfn(struct intel_vgpu *vgpu, gfn_t gfn)
280 if (gfn < itr->gfn)
282 else if (gfn > itr->gfn)
290 static int __gvt_cache_add(struct intel_vgpu *vgpu, gfn_t gfn,
302 new->gfn = gfn;
307 /* gfn_cache maps gfn to struct gvt_dma. */
313 if (gfn < itr->gfn)
365 gvt_dma_unmap_page(vgpu, dma->gfn, dma->dma_addr, dma->size);
399 __kvmgt_protect_table_find(struct kvmgt_guest_info *info, gfn_t gfn)
403 hash_for_each_possible(info->ptable, p, hnode, gfn) {
404 if (gfn == p->gfn) {
414 gfn_t gfn)
418 p = __kvmgt_protect_table_find(info, gfn);
422 static void kvmgt_protect_table_add(struct kvmgt_guest_info *info, gfn_t gfn)
426 if (kvmgt_gfn_is_write_protected(info, gfn))
430 if (WARN(!p, "gfn: 0x%llx\n", gfn))
433 p->gfn = gfn;
434 hash_add(info->ptable, &p->hnode, gfn);
438 gfn_t gfn)
442 p = __kvmgt_protect_table_find(info, gfn);
764 gvt_dma_unmap_page(vgpu, entry->gfn, entry->dma_addr,
1686 static int kvmgt_page_track_add(unsigned long handle, u64 gfn)
1700 slot = gfn_to_memslot(kvm, gfn);
1708 if (kvmgt_gfn_is_write_protected(info, gfn))
1711 kvm_slot_page_track_add_page(kvm, slot, gfn, KVM_PAGE_TRACK_WRITE);
1712 kvmgt_protect_table_add(info, gfn);
1720 static int kvmgt_page_track_remove(unsigned long handle, u64 gfn)
1734 slot = gfn_to_memslot(kvm, gfn);
1742 if (!kvmgt_gfn_is_write_protected(info, gfn))
1745 kvm_slot_page_track_remove_page(kvm, slot, gfn, KVM_PAGE_TRACK_WRITE);
1746 kvmgt_protect_table_del(info, gfn);
1771 gfn_t gfn;
1777 gfn = slot->base_gfn + i;
1778 if (kvmgt_gfn_is_write_protected(info, gfn)) {
1779 kvm_slot_page_track_remove_page(kvm, slot, gfn,
1781 kvmgt_protect_table_del(info, gfn);
1932 static unsigned long kvmgt_gfn_to_pfn(unsigned long handle, unsigned long gfn)
1942 pfn = gfn_to_pfn(info->kvm, gfn);
1949 static int kvmgt_dma_map_guest_page(unsigned long handle, unsigned long gfn,
1965 entry = __gvt_cache_find_gfn(vgpu, gfn);
1967 ret = gvt_dma_map_page(vgpu, gfn, dma_addr, size);
1971 ret = __gvt_cache_add(vgpu, gfn, *dma_addr, size);
1975 /* the same gfn with different size: unmap and re-map */
1976 gvt_dma_unmap_page(vgpu, gfn, entry->dma_addr, entry->size);
1979 ret = gvt_dma_map_page(vgpu, gfn, dma_addr, size);
1983 ret = __gvt_cache_add(vgpu, gfn, *dma_addr, size);
1995 gvt_dma_unmap_page(vgpu, gfn, *dma_addr, size);
2029 gvt_dma_unmap_page(entry->vgpu, entry->gfn, entry->dma_addr,
2084 static bool kvmgt_is_valid_gfn(unsigned long handle, unsigned long gfn)
2098 ret = kvm_is_visible_gfn(kvm, gfn);