Lines Matching refs:attachment
511 struct kfd_mem_attachment *attachment) in kfd_mem_dmamap_userptr() argument
517 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmamap_userptr()
518 struct amdgpu_device *adev = attachment->adev; in kfd_mem_dmamap_userptr()
561 kfd_mem_dmamap_dmabuf(struct kfd_mem_attachment *attachment) in kfd_mem_dmamap_dmabuf() argument
564 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmamap_dmabuf()
604 struct kfd_mem_attachment *attachment) in kfd_mem_dmamap_sg_bo() argument
607 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmamap_sg_bo()
608 struct amdgpu_device *adev = attachment->adev; in kfd_mem_dmamap_sg_bo()
659 struct kfd_mem_attachment *attachment) in kfd_mem_dmamap_attachment() argument
661 switch (attachment->type) { in kfd_mem_dmamap_attachment()
665 return kfd_mem_dmamap_userptr(mem, attachment); in kfd_mem_dmamap_attachment()
667 return kfd_mem_dmamap_dmabuf(attachment); in kfd_mem_dmamap_attachment()
669 return kfd_mem_dmamap_sg_bo(mem, attachment); in kfd_mem_dmamap_attachment()
678 struct kfd_mem_attachment *attachment) in kfd_mem_dmaunmap_userptr() argument
684 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmaunmap_userptr()
685 struct amdgpu_device *adev = attachment->adev; in kfd_mem_dmaunmap_userptr()
701 kfd_mem_dmaunmap_dmabuf(struct kfd_mem_attachment *attachment) in kfd_mem_dmaunmap_dmabuf() argument
727 struct kfd_mem_attachment *attachment) in kfd_mem_dmaunmap_sg_bo() argument
730 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmaunmap_sg_bo()
731 struct amdgpu_device *adev = attachment->adev; in kfd_mem_dmaunmap_sg_bo()
755 struct kfd_mem_attachment *attachment) in kfd_mem_dmaunmap_attachment() argument
757 switch (attachment->type) { in kfd_mem_dmaunmap_attachment()
761 kfd_mem_dmaunmap_userptr(mem, attachment); in kfd_mem_dmaunmap_attachment()
764 kfd_mem_dmaunmap_dmabuf(attachment); in kfd_mem_dmaunmap_attachment()
767 kfd_mem_dmaunmap_sg_bo(mem, attachment); in kfd_mem_dmaunmap_attachment()
829 struct kfd_mem_attachment *attachment[2] = {NULL, NULL}; in kfd_mem_attach() local
858 attachment[i] = kzalloc(sizeof(*attachment[i]), GFP_KERNEL); in kfd_mem_attach()
859 if (unlikely(!attachment[i])) { in kfd_mem_attach()
874 attachment[i]->type = KFD_MEM_ATT_SHARED; in kfd_mem_attach()
879 attachment[i]->type = KFD_MEM_ATT_SHARED; in kfd_mem_attach()
884 attachment[i]->type = KFD_MEM_ATT_USERPTR; in kfd_mem_attach()
893 attachment[i]->type = KFD_MEM_ATT_SG; in kfd_mem_attach()
900 attachment[i]->type = KFD_MEM_ATT_DMABUF; in kfd_mem_attach()
917 attachment[i]->bo_va = amdgpu_vm_bo_add(adev, vm, bo[i]); in kfd_mem_attach()
919 if (unlikely(!attachment[i]->bo_va)) { in kfd_mem_attach()
925 attachment[i]->va = va; in kfd_mem_attach()
926 attachment[i]->pte_flags = get_pte_flags(adev, mem); in kfd_mem_attach()
927 attachment[i]->adev = adev; in kfd_mem_attach()
928 list_add(&attachment[i]->list, &mem->attachments); in kfd_mem_attach()
937 if (!attachment[i]) in kfd_mem_attach()
939 if (attachment[i]->bo_va) { in kfd_mem_attach()
941 amdgpu_vm_bo_del(adev, attachment[i]->bo_va); in kfd_mem_attach()
943 list_del(&attachment[i]->list); in kfd_mem_attach()
947 kfree(attachment[i]); in kfd_mem_attach()
952 static void kfd_mem_detach(struct kfd_mem_attachment *attachment) in kfd_mem_detach() argument
954 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_detach()
957 attachment->va, attachment); in kfd_mem_detach()
958 amdgpu_vm_bo_del(attachment->adev, attachment->bo_va); in kfd_mem_detach()
960 list_del(&attachment->list); in kfd_mem_detach()
961 kfree(attachment); in kfd_mem_detach()
2536 struct kfd_mem_attachment *attachment; in validate_invalid_user_pages() local
2556 list_for_each_entry(attachment, &mem->attachments, list) { in validate_invalid_user_pages()
2557 if (!attachment->is_mapped) in validate_invalid_user_pages()
2560 kfd_mem_dmaunmap_attachment(mem, attachment); in validate_invalid_user_pages()
2561 ret = update_gpuvm_pte(mem, attachment, &sync); in validate_invalid_user_pages()
2788 struct kfd_mem_attachment *attachment; in amdgpu_amdkfd_gpuvm_restore_process_bos() local
2813 list_for_each_entry(attachment, &mem->attachments, list) { in amdgpu_amdkfd_gpuvm_restore_process_bos()
2814 if (!attachment->is_mapped) in amdgpu_amdkfd_gpuvm_restore_process_bos()
2817 if (attachment->bo_va->base.bo->tbo.pin_count) in amdgpu_amdkfd_gpuvm_restore_process_bos()
2820 kfd_mem_dmaunmap_attachment(mem, attachment); in amdgpu_amdkfd_gpuvm_restore_process_bos()
2821 ret = update_gpuvm_pte(mem, attachment, &sync_obj); in amdgpu_amdkfd_gpuvm_restore_process_bos()