Commit ac4eb83a authored by Christian König's avatar Christian König
Browse files

drm/sched: select new rq even if there is only one v3



This is necessary when changing priorities of an entity.

v2: test the sched_list instead of num_sched.
v3: set the sched_list to NULL when there is only one entry

Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarSonny Jiang <sonny.jiang@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210305125155.2312-1-christian.koenig@amd.com
parent a9cdf680
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -453,7 +453,7 @@ void drm_sched_entity_select_rq(struct drm_sched_entity *entity)
	struct drm_gpu_scheduler *sched;
	struct drm_sched_rq *rq;

	if (spsc_queue_count(&entity->job_queue) || entity->num_sched_list <= 1)
	if (spsc_queue_count(&entity->job_queue) || !entity->sched_list)
		return;

	fence = READ_ONCE(entity->last_scheduled);
@@ -467,8 +467,10 @@ void drm_sched_entity_select_rq(struct drm_sched_entity *entity)
		drm_sched_rq_remove_entity(entity->rq, entity);
		entity->rq = rq;
	}

	spin_unlock(&entity->rq_lock);

	if (entity->num_sched_list == 1)
		entity->sched_list = NULL;
}

/**