Lines Matching refs:attachment

547 		       struct kfd_mem_attachment *attachment)
553 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
554 struct amdgpu_device *adev = attachment->adev;
597 kfd_mem_dmamap_dmabuf(struct kfd_mem_attachment *attachment)
600 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
615 * @attachment: Virtual address attachment of the BO on accessing device
640 struct kfd_mem_attachment *attachment)
643 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
644 struct amdgpu_device *adev = attachment->adev;
695 struct kfd_mem_attachment *attachment)
697 switch (attachment->type) {
701 return kfd_mem_dmamap_userptr(mem, attachment);
703 return kfd_mem_dmamap_dmabuf(attachment);
705 return kfd_mem_dmamap_sg_bo(mem, attachment);
714 struct kfd_mem_attachment *attachment)
720 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
721 struct amdgpu_device *adev = attachment->adev;
737 kfd_mem_dmaunmap_dmabuf(struct kfd_mem_attachment *attachment)
748 * @attachment: Virtual address attachment of the BO on accessing device
763 struct kfd_mem_attachment *attachment)
766 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
767 struct amdgpu_device *adev = attachment->adev;
791 struct kfd_mem_attachment *attachment)
793 switch (attachment->type) {
797 kfd_mem_dmaunmap_userptr(mem, attachment);
800 kfd_mem_dmaunmap_dmabuf(attachment);
803 kfd_mem_dmaunmap_sg_bo(mem, attachment);
874 struct kfd_mem_attachment *attachment[2] = {NULL, NULL};
904 attachment[i] = kzalloc(sizeof(*attachment[i]), GFP_KERNEL);
905 if (unlikely(!attachment[i])) {
921 attachment[i]->type = KFD_MEM_ATT_SHARED;
926 attachment[i]->type = KFD_MEM_ATT_SHARED;
931 attachment[i]->type = KFD_MEM_ATT_USERPTR;
940 attachment[i]->type = KFD_MEM_ATT_SG;
947 attachment[i]->type = KFD_MEM_ATT_DMABUF;
969 attachment[i]->bo_va = bo_va;
971 if (unlikely(!attachment[i]->bo_va)) {
977 attachment[i]->va = va;
978 attachment[i]->pte_flags = get_pte_flags(adev, mem);
979 attachment[i]->adev = adev;
980 list_add(&attachment[i]->list, &mem->attachments);
989 if (!attachment[i])
991 if (attachment[i]->bo_va) {
993 if (--attachment[i]->bo_va->ref_count == 0)
994 amdgpu_vm_bo_del(adev, attachment[i]->bo_va);
996 list_del(&attachment[i]->list);
1000 kfree(attachment[i]);
1005 static void kfd_mem_detach(struct kfd_mem_attachment *attachment)
1007 struct amdgpu_bo *bo = attachment->bo_va->base.bo;
1010 attachment->va, attachment);
1011 if (--attachment->bo_va->ref_count == 0)
1012 amdgpu_vm_bo_del(attachment->adev, attachment->bo_va);
1014 list_del(&attachment->list);
1015 kfree(attachment);
2651 struct kfd_mem_attachment *attachment;
2671 list_for_each_entry(attachment, &mem->attachments, list) {
2672 if (!attachment->is_mapped)
2675 kfd_mem_dmaunmap_attachment(mem, attachment);
2676 ret = update_gpuvm_pte(mem, attachment, &sync);
2954 struct kfd_mem_attachment *attachment;
2956 list_for_each_entry(attachment, &mem->attachments, list) {
2957 if (!attachment->is_mapped)
2960 if (attachment->bo_va->base.bo->tbo.pin_count)
2963 kfd_mem_dmaunmap_attachment(mem, attachment);
2964 ret = update_gpuvm_pte(mem, attachment, &sync_obj);