Merge branch 'drm-next-4.21' of git://people.freedesktop.org/~agd5f/linux into drm...
[sfrench/cifs-2.6.git] / drivers / gpu / drm / etnaviv / etnaviv_sched.c
index 9b476368aa313efd7c33945aeadd2b4c481c70d2..49a6763693f1ab372d4eeea89f72cd04bbf63442 100644 (file)
@@ -105,8 +105,6 @@ static void etnaviv_sched_timedout_job(struct drm_sched_job *sched_job)
        change = dma_addr - gpu->hangcheck_dma_addr;
        if (change < 0 || change > 16) {
                gpu->hangcheck_dma_addr = dma_addr;
-               schedule_delayed_work(&sched_job->sched->work_tdr,
-                                     sched_job->sched->timeout);
                return;
        }
 
@@ -127,6 +125,8 @@ static void etnaviv_sched_free_job(struct drm_sched_job *sched_job)
 {
        struct etnaviv_gem_submit *submit = to_etnaviv_submit(sched_job);
 
+       drm_sched_job_cleanup(sched_job);
+
        etnaviv_submit_put(submit);
 }
 
@@ -159,6 +159,7 @@ int etnaviv_sched_push_job(struct drm_sched_entity *sched_entity,
                                                submit->out_fence, 0,
                                                INT_MAX, GFP_KERNEL);
        if (submit->out_fence_id < 0) {
+               drm_sched_job_cleanup(&submit->sched_job);
                ret = -ENOMEM;
                goto out_unlock;
        }