Lines Matching refs:userptr

226 	struct hl_userptr *userptr;  in dma_map_host_va()  local
229 userptr = kzalloc(sizeof(*userptr), GFP_KERNEL); in dma_map_host_va()
230 if (!userptr) { in dma_map_host_va()
235 rc = hl_pin_host_memory(hdev, addr, size, userptr); in dma_map_host_va()
241 userptr->dma_mapped = true; in dma_map_host_va()
242 userptr->dir = DMA_BIDIRECTIONAL; in dma_map_host_va()
243 userptr->vm_type = VM_TYPE_USERPTR; in dma_map_host_va()
245 *p_userptr = userptr; in dma_map_host_va()
247 rc = hdev->asic_funcs->asic_dma_map_sgtable(hdev, userptr->sgt, DMA_BIDIRECTIONAL); in dma_map_host_va()
256 hl_unpin_host_memory(hdev, userptr); in dma_map_host_va()
258 kfree(userptr); in dma_map_host_va()
274 struct hl_userptr *userptr) in dma_unmap_host_va() argument
276 hl_unpin_host_memory(hdev, userptr); in dma_unmap_host_va()
277 kfree(userptr); in dma_unmap_host_va()
841 struct hl_userptr *userptr, in init_phys_pg_pack_from_userptr() argument
859 phys_pg_pack->vm_type = userptr->vm_type; in init_phys_pg_pack_from_userptr()
873 for_each_sgtable_dma_sg(userptr->sgt, sg, i) { in init_phys_pg_pack_from_userptr()
902 for_each_sgtable_dma_sg(userptr->sgt, sg, i) { in init_phys_pg_pack_from_userptr()
1080 struct hl_userptr *userptr = NULL; in map_device_va() local
1103 rc = dma_map_host_va(hdev, addr, size, &userptr); in map_device_va()
1109 rc = init_phys_pg_pack_from_userptr(ctx, userptr, in map_device_va()
1118 vm_type = (enum vm_type *) userptr; in map_device_va()
1271 dma_unmap_host_va(hdev, userptr); in map_device_va()
1294 struct hl_userptr *userptr = NULL; in unmap_device_va() local
1323 userptr = hnode->ptr; in unmap_device_va()
1325 rc = init_phys_pg_pack_from_userptr(ctx, userptr, &phys_pg_pack, in unmap_device_va()
1405 dma_unmap_host_va(hdev, userptr); in unmap_device_va()
2302 struct hl_userptr *userptr) in get_user_memory() argument
2311 userptr->pages = kvmalloc_array(npages, sizeof(struct page *), GFP_KERNEL); in get_user_memory()
2312 if (!userptr->pages) in get_user_memory()
2317 userptr->pages); in get_user_memory()
2329 userptr->npages = npages; in get_user_memory()
2331 rc = sg_alloc_table_from_pages(userptr->sgt, in get_user_memory()
2332 userptr->pages, in get_user_memory()
2342 unpin_user_pages(userptr->pages, npages); in get_user_memory()
2344 kvfree(userptr->pages); in get_user_memory()
2360 struct hl_userptr *userptr) in hl_pin_host_memory() argument
2383 userptr->pid = current->pid; in hl_pin_host_memory()
2384 userptr->sgt = kzalloc(sizeof(*userptr->sgt), GFP_KERNEL); in hl_pin_host_memory()
2385 if (!userptr->sgt) in hl_pin_host_memory()
2393 userptr->size = size; in hl_pin_host_memory()
2394 userptr->addr = addr; in hl_pin_host_memory()
2395 userptr->dma_mapped = false; in hl_pin_host_memory()
2396 INIT_LIST_HEAD(&userptr->job_node); in hl_pin_host_memory()
2399 userptr); in hl_pin_host_memory()
2407 hl_debugfs_add_userptr(hdev, userptr); in hl_pin_host_memory()
2412 kfree(userptr->sgt); in hl_pin_host_memory()
2425 void hl_unpin_host_memory(struct hl_device *hdev, struct hl_userptr *userptr) in hl_unpin_host_memory() argument
2427 hl_debugfs_remove_userptr(hdev, userptr); in hl_unpin_host_memory()
2429 if (userptr->dma_mapped) in hl_unpin_host_memory()
2430 hdev->asic_funcs->hl_dma_unmap_sgtable(hdev, userptr->sgt, userptr->dir); in hl_unpin_host_memory()
2432 unpin_user_pages_dirty_lock(userptr->pages, userptr->npages, true); in hl_unpin_host_memory()
2433 kvfree(userptr->pages); in hl_unpin_host_memory()
2435 list_del(&userptr->job_node); in hl_unpin_host_memory()
2437 sg_free_table(userptr->sgt); in hl_unpin_host_memory()
2438 kfree(userptr->sgt); in hl_unpin_host_memory()
2453 struct hl_userptr *userptr, *tmp; in hl_userptr_delete_list() local
2455 list_for_each_entry_safe(userptr, tmp, userptr_list, job_node) { in hl_userptr_delete_list()
2456 hl_unpin_host_memory(hdev, userptr); in hl_userptr_delete_list()
2457 kfree(userptr); in hl_userptr_delete_list()
2477 struct hl_userptr **userptr) in hl_userptr_is_pinned() argument
2479 list_for_each_entry((*userptr), userptr_list, job_node) { in hl_userptr_is_pinned()
2480 if ((addr == (*userptr)->addr) && (size == (*userptr)->size)) in hl_userptr_is_pinned()