Skip to content

Commit 4f9b94d

Browse files
ZhenGuo Yinalexdeucher
authored andcommitted
drm/scheduler: avoid infinite loop if entity's dependency is a scheduled error fence
[Why] drm_sched_entity_add_dependency_cb ignores the scheduled fence and return false. If entity's dependency is a scheduler error fence and drm_sched_stop is called due to TDR, drm_sched_entity_pop_job will wait for the dependency infinitely. [How] Do not wait or ignore the scheduled error fence, add drm_sched_entity_wakeup callback for the dependency with scheduled error fence. Signed-off-by: ZhenGuo Yin <zhenguo.yin@amd.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent 71eaac3 commit 4f9b94d

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

drivers/gpu/drm/scheduler/sched_entity.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ static bool drm_sched_entity_add_dependency_cb(struct drm_sched_entity *entity)
384384
}
385385

386386
s_fence = to_drm_sched_fence(fence);
387-
if (s_fence && s_fence->sched == sched &&
387+
if (!fence->error && s_fence && s_fence->sched == sched &&
388388
!test_bit(DRM_SCHED_FENCE_DONT_PIPELINE, &fence->flags)) {
389389

390390
/*

0 commit comments

Comments
 (0)