Commit 75973e58 authored by Andrey Grodzovsky's avatar Andrey Grodzovsky

drm/sched: Make timeout timer rearm conditional.

We don't want to rearm the timer if driver hook reports
that the device is gone.

v5: Update drm_gpu_sched_stat values in code.
Signed-off-by: default avatarAndrey Grodzovsky <andrey.grodzovsky@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210512142648.666476-11-andrey.grodzovsky@amd.com
parent f89f8c6b
...@@ -314,6 +314,7 @@ static void drm_sched_job_timedout(struct work_struct *work) ...@@ -314,6 +314,7 @@ static void drm_sched_job_timedout(struct work_struct *work)
{ {
struct drm_gpu_scheduler *sched; struct drm_gpu_scheduler *sched;
struct drm_sched_job *job; struct drm_sched_job *job;
enum drm_gpu_sched_stat status = DRM_GPU_SCHED_STAT_NOMINAL;
sched = container_of(work, struct drm_gpu_scheduler, work_tdr.work); sched = container_of(work, struct drm_gpu_scheduler, work_tdr.work);
...@@ -331,7 +332,7 @@ static void drm_sched_job_timedout(struct work_struct *work) ...@@ -331,7 +332,7 @@ static void drm_sched_job_timedout(struct work_struct *work)
list_del_init(&job->list); list_del_init(&job->list);
spin_unlock(&sched->job_list_lock); spin_unlock(&sched->job_list_lock);
job->sched->ops->timedout_job(job); status = job->sched->ops->timedout_job(job);
/* /*
* Guilty job did complete and hence needs to be manually removed * Guilty job did complete and hence needs to be manually removed
...@@ -345,9 +346,11 @@ static void drm_sched_job_timedout(struct work_struct *work) ...@@ -345,9 +346,11 @@ static void drm_sched_job_timedout(struct work_struct *work)
spin_unlock(&sched->job_list_lock); spin_unlock(&sched->job_list_lock);
} }
spin_lock(&sched->job_list_lock); if (status != DRM_GPU_SCHED_STAT_ENODEV) {
drm_sched_start_timeout(sched); spin_lock(&sched->job_list_lock);
spin_unlock(&sched->job_list_lock); drm_sched_start_timeout(sched);
spin_unlock(&sched->job_list_lock);
}
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment