Lines Matching refs:attachment
499 struct kfd_mem_attachment *attachment) in kfd_mem_dmamap_userptr() argument
505 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmamap_userptr()
506 struct amdgpu_device *adev = attachment->adev; in kfd_mem_dmamap_userptr()
552 kfd_mem_dmamap_dmabuf(struct kfd_mem_attachment *attachment) in kfd_mem_dmamap_dmabuf() argument
555 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmamap_dmabuf()
589 struct kfd_mem_attachment *attachment) in kfd_mem_dmamap_sg_bo() argument
592 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmamap_sg_bo()
593 struct amdgpu_device *adev = attachment->adev; in kfd_mem_dmamap_sg_bo()
644 struct kfd_mem_attachment *attachment) in kfd_mem_dmamap_attachment() argument
646 switch (attachment->type) { in kfd_mem_dmamap_attachment()
650 return kfd_mem_dmamap_userptr(mem, attachment); in kfd_mem_dmamap_attachment()
652 return kfd_mem_dmamap_dmabuf(attachment); in kfd_mem_dmamap_attachment()
654 return kfd_mem_dmamap_sg_bo(mem, attachment); in kfd_mem_dmamap_attachment()
663 struct kfd_mem_attachment *attachment) in kfd_mem_dmaunmap_userptr() argument
669 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmaunmap_userptr()
670 struct amdgpu_device *adev = attachment->adev; in kfd_mem_dmaunmap_userptr()
686 kfd_mem_dmaunmap_dmabuf(struct kfd_mem_attachment *attachment) in kfd_mem_dmaunmap_dmabuf() argument
689 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmaunmap_dmabuf()
713 struct kfd_mem_attachment *attachment) in kfd_mem_dmaunmap_sg_bo() argument
716 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_dmaunmap_sg_bo()
717 struct amdgpu_device *adev = attachment->adev; in kfd_mem_dmaunmap_sg_bo()
741 struct kfd_mem_attachment *attachment) in kfd_mem_dmaunmap_attachment() argument
743 switch (attachment->type) { in kfd_mem_dmaunmap_attachment()
747 kfd_mem_dmaunmap_userptr(mem, attachment); in kfd_mem_dmaunmap_attachment()
750 kfd_mem_dmaunmap_dmabuf(attachment); in kfd_mem_dmaunmap_attachment()
753 kfd_mem_dmaunmap_sg_bo(mem, attachment); in kfd_mem_dmaunmap_attachment()
807 struct kfd_mem_attachment *attachment[2] = {NULL, NULL}; in kfd_mem_attach() local
836 attachment[i] = kzalloc(sizeof(*attachment[i]), GFP_KERNEL); in kfd_mem_attach()
837 if (unlikely(!attachment[i])) { in kfd_mem_attach()
852 attachment[i]->type = KFD_MEM_ATT_SHARED; in kfd_mem_attach()
857 attachment[i]->type = KFD_MEM_ATT_SHARED; in kfd_mem_attach()
862 attachment[i]->type = KFD_MEM_ATT_USERPTR; in kfd_mem_attach()
871 attachment[i]->type = KFD_MEM_ATT_SG; in kfd_mem_attach()
878 attachment[i]->type = KFD_MEM_ATT_DMABUF; in kfd_mem_attach()
895 attachment[i]->bo_va = amdgpu_vm_bo_add(adev, vm, bo[i]); in kfd_mem_attach()
897 if (unlikely(!attachment[i]->bo_va)) { in kfd_mem_attach()
903 attachment[i]->va = va; in kfd_mem_attach()
904 attachment[i]->pte_flags = get_pte_flags(adev, mem); in kfd_mem_attach()
905 attachment[i]->adev = adev; in kfd_mem_attach()
906 list_add(&attachment[i]->list, &mem->attachments); in kfd_mem_attach()
915 if (!attachment[i]) in kfd_mem_attach()
917 if (attachment[i]->bo_va) { in kfd_mem_attach()
919 amdgpu_vm_bo_del(adev, attachment[i]->bo_va); in kfd_mem_attach()
921 list_del(&attachment[i]->list); in kfd_mem_attach()
925 kfree(attachment[i]); in kfd_mem_attach()
930 static void kfd_mem_detach(struct kfd_mem_attachment *attachment) in kfd_mem_detach() argument
932 struct amdgpu_bo *bo = attachment->bo_va->base.bo; in kfd_mem_detach()
935 attachment->va, attachment); in kfd_mem_detach()
936 amdgpu_vm_bo_del(attachment->adev, attachment->bo_va); in kfd_mem_detach()
938 list_del(&attachment->list); in kfd_mem_detach()
939 kfree(attachment); in kfd_mem_detach()
2480 struct kfd_mem_attachment *attachment; in validate_invalid_user_pages() local
2503 list_for_each_entry(attachment, &mem->attachments, list) { in validate_invalid_user_pages()
2504 if (!attachment->is_mapped) in validate_invalid_user_pages()
2507 kfd_mem_dmaunmap_attachment(mem, attachment); in validate_invalid_user_pages()
2508 ret = update_gpuvm_pte(mem, attachment, &sync); in validate_invalid_user_pages()
2692 struct kfd_mem_attachment *attachment; in amdgpu_amdkfd_gpuvm_restore_process_bos() local
2717 list_for_each_entry(attachment, &mem->attachments, list) { in amdgpu_amdkfd_gpuvm_restore_process_bos()
2718 if (!attachment->is_mapped) in amdgpu_amdkfd_gpuvm_restore_process_bos()
2721 kfd_mem_dmaunmap_attachment(mem, attachment); in amdgpu_amdkfd_gpuvm_restore_process_bos()
2722 ret = update_gpuvm_pte(mem, attachment, &sync_obj); in amdgpu_amdkfd_gpuvm_restore_process_bos()