drm/amdgpu: make sure the fence is emitted before ring to get it.
Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Acked-by: Christian K?nig <christian.koenig@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
index 1f7bf31..46ec915 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
@@ -56,12 +56,15 @@
sched_job->filp);
if (r)
goto err;
-
if (sched_job->run_job) {
r = sched_job->run_job(sched_job);
if (r)
goto err;
}
+ atomic64_set(&c_entity->last_emitted_v_seq,
+ sched_job->uf.sequence);
+ wake_up_all(&c_entity->wait_emit);
+
mutex_unlock(&sched_job->job_lock);
return;
err: