drm/scheduler: add NULL pointer check for run queue (v2)
authorJunwei Zhang <Jerry.Zhang@amd.com>
Mon, 16 Jul 2018 02:53:43 +0000 (10:53 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 16 Jul 2018 21:11:48 +0000 (16:11 -0500)
To check rq pointer before adding entity into it.
That avoids NULL pointer access in some case.

v2: move the check to caller

Suggested-by: Christian König <christian.koenig@amd.com>
Signed-off-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/scheduler/gpu_scheduler.c

index 16bf446aa6b389dad06fe623648b796e8e4f2041..dac71e3b4514c8a9c22dec752df35dd674af21b0 100644 (file)
@@ -547,6 +547,11 @@ void drm_sched_entity_push_job(struct drm_sched_job *sched_job,
        if (first) {
                /* Add the entity to the run queue */
                spin_lock(&entity->rq_lock);
+               if (!entity->rq) {
+                       DRM_ERROR("Trying to push to a killed entity\n");
+                       spin_unlock(&entity->rq_lock);
+                       return;
+               }
                drm_sched_rq_add_entity(entity->rq, entity);
                spin_unlock(&entity->rq_lock);
                drm_sched_wakeup(sched);