drm/amd: fix init order of sched job
authorChunming Zhou <David1.Zhou@amd.com>
Tue, 9 May 2017 07:34:07 +0000 (15:34 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 10 May 2017 17:16:50 +0000 (13:16 -0400)
Need to increment after the fence check.

Signed-off-by: Chunming Zhou <David1.Zhou@amd.com>
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/scheduler/gpu_scheduler.c

index 5fd12db0fc58f63aabf960f9fa9c0c34a932987a..28b92c8d99853923c126d106a5519c9559613e6d 100644 (file)
@@ -462,9 +462,9 @@ int amd_sched_job_init(struct amd_sched_job *job,
        job->sched = sched;
        job->s_entity = entity;
        job->s_fence = amd_sched_fence_create(entity, owner);
-       job->id = atomic64_inc_return(&sched->job_id_count);
        if (!job->s_fence)
                return -ENOMEM;
+       job->id = atomic64_inc_return(&sched->job_id_count);
 
        INIT_WORK(&job->finish_work, amd_sched_job_finish);
        INIT_LIST_HEAD(&job->node);