Lines Matching refs:job

794 static int amdgpu_cs_free_job(struct amdgpu_job *job)  in amdgpu_cs_free_job()  argument
797 if (job->ibs) in amdgpu_cs_free_job()
798 for (i = 0; i < job->num_ibs; i++) in amdgpu_cs_free_job()
799 amdgpu_ib_free(job->adev, &job->ibs[i]); in amdgpu_cs_free_job()
800 kfree(job->ibs); in amdgpu_cs_free_job()
801 if (job->uf.bo) in amdgpu_cs_free_job()
802 amdgpu_bo_unref(&job->uf.bo); in amdgpu_cs_free_job()
856 struct amdgpu_job *job; in amdgpu_cs_ioctl() local
858 job = kzalloc(sizeof(struct amdgpu_job), GFP_KERNEL); in amdgpu_cs_ioctl()
859 if (!job) { in amdgpu_cs_ioctl()
864 job->base.sched = &ring->sched; in amdgpu_cs_ioctl()
865 job->base.s_entity = &parser.ctx->rings[ring->idx].entity; in amdgpu_cs_ioctl()
866 job->adev = parser.adev; in amdgpu_cs_ioctl()
867 job->owner = parser.filp; in amdgpu_cs_ioctl()
868 job->free_job = amdgpu_cs_free_job; in amdgpu_cs_ioctl()
870 job->ibs = parser.ibs; in amdgpu_cs_ioctl()
871 job->num_ibs = parser.num_ibs; in amdgpu_cs_ioctl()
875 if (job->ibs[job->num_ibs - 1].user) { in amdgpu_cs_ioctl()
876 job->uf = parser.uf; in amdgpu_cs_ioctl()
877 job->ibs[job->num_ibs - 1].user = &job->uf; in amdgpu_cs_ioctl()
881 fence = amd_sched_fence_create(job->base.s_entity, in amdgpu_cs_ioctl()
885 amdgpu_cs_free_job(job); in amdgpu_cs_ioctl()
886 kfree(job); in amdgpu_cs_ioctl()
889 job->base.s_fence = fence; in amdgpu_cs_ioctl()
894 job->ibs[job->num_ibs - 1].sequence = cs->out.handle; in amdgpu_cs_ioctl()
896 trace_amdgpu_cs_ioctl(job); in amdgpu_cs_ioctl()
897 amd_sched_entity_push_job(&job->base); in amdgpu_cs_ioctl()