diff --git a/sys/dev/drm/scheduler/sched_main.c b/sys/dev/drm/scheduler/sched_main.c --- a/sys/dev/drm/scheduler/sched_main.c +++ b/sys/dev/drm/scheduler/sched_main.c @@ -259,7 +259,8 @@ list_for_each_entry_reverse(job, &sched->ring_mirror_list, node) { struct drm_sched_fence *fence = job->s_fence; - if (!dma_fence_remove_callback(fence->parent, &fence->cb)) + if (fence->parent != NULL && + !dma_fence_remove_callback(fence->parent, &fence->cb)) goto already_signaled; }