Lines Matching refs:attachment
544 struct kfd_mem_attachment *attachment)
550 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
551 struct amdgpu_device *adev = attachment->adev;
594 kfd_mem_dmamap_dmabuf(struct kfd_mem_attachment *attachment)
597 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
606 * @attachment: Virtual address attachment of the BO on accessing device
631 struct kfd_mem_attachment *attachment)
634 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
635 struct amdgpu_device *adev = attachment->adev;
686 struct kfd_mem_attachment *attachment)
688 switch (attachment->type) {
692 return kfd_mem_dmamap_userptr(mem, attachment);
694 return kfd_mem_dmamap_dmabuf(attachment);
696 return kfd_mem_dmamap_sg_bo(mem, attachment);
705 struct kfd_mem_attachment *attachment)
711 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
712 struct amdgpu_device *adev = attachment->adev;
728 kfd_mem_dmaunmap_dmabuf(struct kfd_mem_attachment *attachment)
739 * @attachment: Virtual address attachment of the BO on accessing device
754 struct kfd_mem_attachment *attachment)
757 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
758 struct amdgpu_device *adev = attachment->adev;
782 struct kfd_mem_attachment *attachment)
784 switch (attachment->type) {
788 kfd_mem_dmaunmap_userptr(mem, attachment);
791 kfd_mem_dmaunmap_dmabuf(attachment);
794 kfd_mem_dmaunmap_sg_bo(mem, attachment);
860 struct kfd_mem_attachment *attachment[2] = {NULL, NULL};
890 attachment[i] = kzalloc(sizeof(*attachment[i]), GFP_KERNEL);
891 if (unlikely(!attachment[i])) {
907 attachment[i]->type = KFD_MEM_ATT_SHARED;
912 attachment[i]->type = KFD_MEM_ATT_SHARED;
917 attachment[i]->type = KFD_MEM_ATT_USERPTR;
926 attachment[i]->type = KFD_MEM_ATT_SG;
933 attachment[i]->type = KFD_MEM_ATT_DMABUF;
955 attachment[i]->bo_va = bo_va;
957 if (unlikely(!attachment[i]->bo_va)) {
963 attachment[i]->va = va;
964 attachment[i]->pte_flags = get_pte_flags(adev, mem);
965 attachment[i]->adev = adev;
966 list_add(&attachment[i]->list, &mem->attachments);
975 if (!attachment[i])
977 if (attachment[i]->bo_va) {
979 if (--attachment[i]->bo_va->ref_count == 0)
980 amdgpu_vm_bo_del(adev, attachment[i]->bo_va);
982 list_del(&attachment[i]->list);
986 kfree(attachment[i]);
991 static void kfd_mem_detach(struct kfd_mem_attachment *attachment)
993 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
996 attachment->va, attachment);
997 if (--attachment->bo_va->ref_count == 0)
998 amdgpu_vm_bo_del(attachment->adev, attachment->bo_va);
1000 list_del(&attachment->list);
1001 kfree(attachment);
2636 struct kfd_mem_attachment *attachment;
2656 list_for_each_entry(attachment, &mem->attachments, list) {
2657 if (!attachment->is_mapped)
2660 kfd_mem_dmaunmap_attachment(mem, attachment);
2661 ret = update_gpuvm_pte(mem, attachment, &sync);
2939 struct kfd_mem_attachment *attachment;
2941 list_for_each_entry(attachment, &mem->attachments, list) {
2942 if (!attachment->is_mapped)
2945 kfd_mem_dmaunmap_attachment(mem, attachment);
2946 ret = update_gpuvm_pte(mem, attachment, &sync_obj);