Lines Matching refs:attachment

469 		       struct kfd_mem_attachment *attachment)  in kfd_mem_dmamap_userptr()  argument
475 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmamap_userptr()
476 struct amdgpu_device *adev = attachment->adev; in kfd_mem_dmamap_userptr()
522 kfd_mem_dmamap_dmabuf(struct kfd_mem_attachment *attachment) in kfd_mem_dmamap_dmabuf() argument
525 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmamap_dmabuf()
533 struct kfd_mem_attachment *attachment) in kfd_mem_dmamap_attachment() argument
535 switch (attachment->type) { in kfd_mem_dmamap_attachment()
539 return kfd_mem_dmamap_userptr(mem, attachment); in kfd_mem_dmamap_attachment()
541 return kfd_mem_dmamap_dmabuf(attachment); in kfd_mem_dmamap_attachment()
550 struct kfd_mem_attachment *attachment) in kfd_mem_dmaunmap_userptr() argument
556 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmaunmap_userptr()
557 struct amdgpu_device *adev = attachment->adev; in kfd_mem_dmaunmap_userptr()
573 kfd_mem_dmaunmap_dmabuf(struct kfd_mem_attachment *attachment) in kfd_mem_dmaunmap_dmabuf() argument
576 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmaunmap_dmabuf()
584 struct kfd_mem_attachment *attachment) in kfd_mem_dmaunmap_attachment() argument
586 switch (attachment->type) { in kfd_mem_dmaunmap_attachment()
590 kfd_mem_dmaunmap_userptr(mem, attachment); in kfd_mem_dmaunmap_attachment()
593 kfd_mem_dmaunmap_dmabuf(attachment); in kfd_mem_dmaunmap_attachment()
675 struct kfd_mem_attachment *attachment[2] = {NULL, NULL}; in kfd_mem_attach() local
685 attachment[i] = kzalloc(sizeof(*attachment[i]), GFP_KERNEL); in kfd_mem_attach()
686 if (unlikely(!attachment[i])) { in kfd_mem_attach()
699 attachment[i]->type = KFD_MEM_ATT_SHARED; in kfd_mem_attach()
704 attachment[i]->type = KFD_MEM_ATT_SHARED; in kfd_mem_attach()
709 attachment[i]->type = KFD_MEM_ATT_USERPTR; in kfd_mem_attach()
719 attachment[i]->type = KFD_MEM_ATT_DMABUF; in kfd_mem_attach()
727 attachment[i]->type = KFD_MEM_ATT_SHARED; in kfd_mem_attach()
738 attachment[i]->bo_va = amdgpu_vm_bo_add(adev, vm, bo[i]); in kfd_mem_attach()
740 if (unlikely(!attachment[i]->bo_va)) { in kfd_mem_attach()
746 attachment[i]->va = va; in kfd_mem_attach()
747 attachment[i]->pte_flags = get_pte_flags(adev, mem); in kfd_mem_attach()
748 attachment[i]->adev = adev; in kfd_mem_attach()
749 list_add(&attachment[i]->list, &mem->attachments); in kfd_mem_attach()
758 if (!attachment[i]) in kfd_mem_attach()
760 if (attachment[i]->bo_va) { in kfd_mem_attach()
762 amdgpu_vm_bo_rmv(adev, attachment[i]->bo_va); in kfd_mem_attach()
764 list_del(&attachment[i]->list); in kfd_mem_attach()
768 kfree(attachment[i]); in kfd_mem_attach()
773 static void kfd_mem_detach(struct kfd_mem_attachment *attachment) in kfd_mem_detach() argument
775 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_detach()
778 attachment->va, attachment); in kfd_mem_detach()
779 amdgpu_vm_bo_rmv(attachment->adev, attachment->bo_va); in kfd_mem_detach()
781 list_del(&attachment->list); in kfd_mem_detach()
782 kfree(attachment); in kfd_mem_detach()
2154 struct kfd_mem_attachment *attachment; in validate_invalid_user_pages() local
2177 list_for_each_entry(attachment, &mem->attachments, list) { in validate_invalid_user_pages()
2178 if (!attachment->is_mapped) in validate_invalid_user_pages()
2181 kfd_mem_dmaunmap_attachment(mem, attachment); in validate_invalid_user_pages()
2182 ret = update_gpuvm_pte(mem, attachment, &sync, NULL); in validate_invalid_user_pages()
2363 struct kfd_mem_attachment *attachment; in amdgpu_amdkfd_gpuvm_restore_process_bos() local
2383 list_for_each_entry(attachment, &mem->attachments, list) { in amdgpu_amdkfd_gpuvm_restore_process_bos()
2384 if (!attachment->is_mapped) in amdgpu_amdkfd_gpuvm_restore_process_bos()
2387 kfd_mem_dmaunmap_attachment(mem, attachment); in amdgpu_amdkfd_gpuvm_restore_process_bos()
2388 ret = update_gpuvm_pte(mem, attachment, &sync_obj, NULL); in amdgpu_amdkfd_gpuvm_restore_process_bos()