Lines Matching defs:attachment
515 struct kfd_mem_attachment *attachment)
521 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
522 struct amdgpu_device *adev = attachment->adev;
565 kfd_mem_dmamap_dmabuf(struct kfd_mem_attachment *attachment)
568 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
583 * @attachment: Virtual address attachment of the BO on accessing device
608 struct kfd_mem_attachment *attachment)
611 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
612 struct amdgpu_device *adev = attachment->adev;
663 struct kfd_mem_attachment *attachment)
665 switch (attachment->type) {
669 return kfd_mem_dmamap_userptr(mem, attachment);
671 return kfd_mem_dmamap_dmabuf(attachment);
673 return kfd_mem_dmamap_sg_bo(mem, attachment);
682 struct kfd_mem_attachment *attachment)
688 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
689 struct amdgpu_device *adev = attachment->adev;
705 kfd_mem_dmaunmap_dmabuf(struct kfd_mem_attachment *attachment)
716 * @attachment: Virtual address attachment of the BO on accessing device
731 struct kfd_mem_attachment *attachment)
734 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
735 struct amdgpu_device *adev = attachment->adev;
759 struct kfd_mem_attachment *attachment)
761 switch (attachment->type) {
765 kfd_mem_dmaunmap_userptr(mem, attachment);
768 kfd_mem_dmaunmap_dmabuf(attachment);
771 kfd_mem_dmaunmap_sg_bo(mem, attachment);
833 struct kfd_mem_attachment *attachment[2] = {NULL, NULL};
862 attachment[i] = kzalloc(sizeof(*attachment[i]), GFP_KERNEL);
863 if (unlikely(!attachment[i])) {
878 attachment[i]->type = KFD_MEM_ATT_SHARED;
883 attachment[i]->type = KFD_MEM_ATT_SHARED;
888 attachment[i]->type = KFD_MEM_ATT_USERPTR;
897 attachment[i]->type = KFD_MEM_ATT_SG;
904 attachment[i]->type = KFD_MEM_ATT_DMABUF;
921 attachment[i]->bo_va = amdgpu_vm_bo_add(adev, vm, bo[i]);
923 if (unlikely(!attachment[i]->bo_va)) {
929 attachment[i]->va = va;
930 attachment[i]->pte_flags = get_pte_flags(adev, mem);
931 attachment[i]->adev = adev;
932 list_add(&attachment[i]->list, &mem->attachments);
941 if (!attachment[i])
943 if (attachment[i]->bo_va) {
945 amdgpu_vm_bo_del(adev, attachment[i]->bo_va);
947 list_del(&attachment[i]->list);
951 kfree(attachment[i]);
956 static void kfd_mem_detach(struct kfd_mem_attachment *attachment)
958 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
961 attachment->va, attachment);
962 amdgpu_vm_bo_del(attachment->adev, attachment->bo_va);
964 list_del(&attachment->list);
965 kfree(attachment);
2574 struct kfd_mem_attachment *attachment;
2594 list_for_each_entry(attachment, &mem->attachments, list) {
2595 if (!attachment->is_mapped)
2598 kfd_mem_dmaunmap_attachment(mem, attachment);
2599 ret = update_gpuvm_pte(mem, attachment, &sync);
2826 struct kfd_mem_attachment *attachment;
2851 list_for_each_entry(attachment, &mem->attachments, list) {
2852 if (!attachment->is_mapped)
2855 kfd_mem_dmaunmap_attachment(mem, attachment);
2856 ret = update_gpuvm_pte(mem, attachment, &sync_obj);