Lines Matching refs:userptr

177 	struct hl_userptr *userptr;  in get_userptr_from_host_va()  local
180 userptr = kzalloc(sizeof(*userptr), GFP_KERNEL); in get_userptr_from_host_va()
181 if (!userptr) { in get_userptr_from_host_va()
187 args->map_host.mem_size, userptr); in get_userptr_from_host_va()
193 rc = hdev->asic_funcs->asic_dma_map_sg(hdev, userptr->sgt->sgl, in get_userptr_from_host_va()
194 userptr->sgt->nents, DMA_BIDIRECTIONAL); in get_userptr_from_host_va()
200 userptr->dma_mapped = true; in get_userptr_from_host_va()
201 userptr->dir = DMA_BIDIRECTIONAL; in get_userptr_from_host_va()
202 userptr->vm_type = VM_TYPE_USERPTR; in get_userptr_from_host_va()
204 *p_userptr = userptr; in get_userptr_from_host_va()
209 hl_unpin_host_memory(hdev, userptr); in get_userptr_from_host_va()
211 kfree(userptr); in get_userptr_from_host_va()
227 static void free_userptr(struct hl_device *hdev, struct hl_userptr *userptr) in free_userptr() argument
229 hl_unpin_host_memory(hdev, userptr); in free_userptr()
230 kfree(userptr); in free_userptr()
646 struct hl_userptr *userptr, in init_phys_pg_pack_from_userptr() argument
661 phys_pg_pack->vm_type = userptr->vm_type; in init_phys_pg_pack_from_userptr()
673 for_each_sg(userptr->sgt->sgl, sg, userptr->sgt->nents, i) { in init_phys_pg_pack_from_userptr()
702 for_each_sg(userptr->sgt->sgl, sg, userptr->sgt->nents, i) { in init_phys_pg_pack_from_userptr()
830 struct hl_userptr *userptr = NULL; in map_device_va() local
842 rc = get_userptr_from_host_va(hdev, args, &userptr); in map_device_va()
848 rc = init_phys_pg_pack_from_userptr(ctx, userptr, in map_device_va()
857 vm_type = (enum vm_type_t *) userptr; in map_device_va()
958 free_userptr(hdev, userptr); in map_device_va()
978 struct hl_userptr *userptr = NULL; in unmap_device_va() local
1006 userptr = hnode->ptr; in unmap_device_va()
1007 rc = init_phys_pg_pack_from_userptr(ctx, userptr, in unmap_device_va()
1067 free_userptr(hdev, userptr); in unmap_device_va()
1219 struct hl_userptr *userptr) in hl_pin_host_memory() argument
1252 userptr->size = size; in hl_pin_host_memory()
1253 userptr->addr = addr; in hl_pin_host_memory()
1254 userptr->dma_mapped = false; in hl_pin_host_memory()
1255 INIT_LIST_HEAD(&userptr->job_node); in hl_pin_host_memory()
1257 userptr->vec = frame_vector_create(npages); in hl_pin_host_memory()
1258 if (!userptr->vec) { in hl_pin_host_memory()
1264 userptr->vec); in hl_pin_host_memory()
1275 if (frame_vector_to_pages(userptr->vec) < 0) { in hl_pin_host_memory()
1282 userptr->sgt = kzalloc(sizeof(*userptr->sgt), GFP_ATOMIC); in hl_pin_host_memory()
1283 if (!userptr->sgt) { in hl_pin_host_memory()
1288 rc = sg_alloc_table_from_pages(userptr->sgt, in hl_pin_host_memory()
1289 frame_vector_pages(userptr->vec), in hl_pin_host_memory()
1296 hl_debugfs_add_userptr(hdev, userptr); in hl_pin_host_memory()
1301 kfree(userptr->sgt); in hl_pin_host_memory()
1303 put_vaddr_frames(userptr->vec); in hl_pin_host_memory()
1305 frame_vector_destroy(userptr->vec); in hl_pin_host_memory()
1319 int hl_unpin_host_memory(struct hl_device *hdev, struct hl_userptr *userptr) in hl_unpin_host_memory() argument
1323 hl_debugfs_remove_userptr(hdev, userptr); in hl_unpin_host_memory()
1325 if (userptr->dma_mapped) in hl_unpin_host_memory()
1327 userptr->sgt->sgl, in hl_unpin_host_memory()
1328 userptr->sgt->nents, in hl_unpin_host_memory()
1329 userptr->dir); in hl_unpin_host_memory()
1331 pages = frame_vector_pages(userptr->vec); in hl_unpin_host_memory()
1335 for (i = 0; i < frame_vector_count(userptr->vec); i++) in hl_unpin_host_memory()
1338 put_vaddr_frames(userptr->vec); in hl_unpin_host_memory()
1339 frame_vector_destroy(userptr->vec); in hl_unpin_host_memory()
1341 list_del(&userptr->job_node); in hl_unpin_host_memory()
1343 sg_free_table(userptr->sgt); in hl_unpin_host_memory()
1344 kfree(userptr->sgt); in hl_unpin_host_memory()
1362 struct hl_userptr *userptr, *tmp; in hl_userptr_delete_list() local
1364 list_for_each_entry_safe(userptr, tmp, userptr_list, job_node) { in hl_userptr_delete_list()
1365 hl_unpin_host_memory(hdev, userptr); in hl_userptr_delete_list()
1366 kfree(userptr); in hl_userptr_delete_list()
1385 struct hl_userptr **userptr) in hl_userptr_is_pinned() argument
1387 list_for_each_entry((*userptr), userptr_list, job_node) { in hl_userptr_is_pinned()
1388 if ((addr == (*userptr)->addr) && (size == (*userptr)->size)) in hl_userptr_is_pinned()