File tree Expand file tree Collapse file tree 1 file changed +7
-8
lines changed
drivers/gpu/drm/scheduler Expand file tree Collapse file tree 1 file changed +7
-8
lines changed Original file line number Diff line number Diff line change @@ -1178,21 +1178,20 @@ static void drm_sched_run_job_work(struct work_struct *w)
1178
1178
struct drm_sched_entity * entity ;
1179
1179
struct dma_fence * fence ;
1180
1180
struct drm_sched_fence * s_fence ;
1181
- struct drm_sched_job * sched_job ;
1181
+ struct drm_sched_job * sched_job = NULL ;
1182
1182
int r ;
1183
1183
1184
1184
if (READ_ONCE (sched -> pause_submit ))
1185
1185
return ;
1186
1186
1187
- entity = drm_sched_select_entity (sched );
1187
+ /* Find entity with a ready job */
1188
+ while (!sched_job && (entity = drm_sched_select_entity (sched ))) {
1189
+ sched_job = drm_sched_entity_pop_job (entity );
1190
+ if (!sched_job )
1191
+ complete_all (& entity -> entity_idle );
1192
+ }
1188
1193
if (!entity )
1189
- return ;
1190
-
1191
- sched_job = drm_sched_entity_pop_job (entity );
1192
- if (!sched_job ) {
1193
- complete_all (& entity -> entity_idle );
1194
1194
return ; /* No more work */
1195
- }
1196
1195
1197
1196
s_fence = sched_job -> s_fence ;
1198
1197
You can’t perform that action at this time.
0 commit comments