From: Andrey Grodzovsky Date: Tue, 12 Mar 2019 16:57:02 +0000 (-0400) Subject: drm/v3d: Fix calling drm_sched_resubmit_jobs for same sched. X-Git-Tag: v5.4-rc1~498^2~30^2~315 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e8074f75f4449b9f9315f3a81d5d72425fba0a8c;p=platform%2Fkernel%2Flinux-rpi.git drm/v3d: Fix calling drm_sched_resubmit_jobs for same sched. Also stop calling drm_sched_increase_karma multiple times. v2: Fix whitespace in the code we're moving (by anholt) Signed-off-by: Andrey Grodzovsky Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/1552409822-17230-1-git-send-email-andrey.grodzovsky@amd.com Acked-by: Christian König Reviewed-by: Eric Anholt Fixes: 222b5f044159 ("drm/sched: Refactor ring mirror list handling.") --- diff --git a/drivers/gpu/drm/v3d/v3d_sched.c b/drivers/gpu/drm/v3d/v3d_sched.c index 4704b2d..d0c68b7 100644 --- a/drivers/gpu/drm/v3d/v3d_sched.c +++ b/drivers/gpu/drm/v3d/v3d_sched.c @@ -231,20 +231,17 @@ v3d_gpu_reset_for_timeout(struct v3d_dev *v3d, struct drm_sched_job *sched_job) mutex_lock(&v3d->reset_lock); /* block scheduler */ - for (q = 0; q < V3D_MAX_QUEUES; q++) { - struct drm_gpu_scheduler *sched = &v3d->queue[q].sched; - - drm_sched_stop(sched); + for (q = 0; q < V3D_MAX_QUEUES; q++) + drm_sched_stop(&v3d->queue[q].sched); - if(sched_job) - drm_sched_increase_karma(sched_job); - } + if (sched_job) + drm_sched_increase_karma(sched_job); /* get the GPU back into the init state */ v3d_reset(v3d); for (q = 0; q < V3D_MAX_QUEUES; q++) - drm_sched_resubmit_jobs(sched_job->sched); + drm_sched_resubmit_jobs(&v3d->queue[q].sched); /* Unblock schedulers and restart their jobs. */ for (q = 0; q < V3D_MAX_QUEUES; q++) {