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