Add early release of the power references in case of errors.

Signed-off-by: Alexandru Dadu <[email protected]>
---
 drivers/gpu/drm/imagination/pvr_queue.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/imagination/pvr_queue.c 
b/drivers/gpu/drm/imagination/pvr_queue.c
index b58c0887cafe..1b013791897d 100644
--- a/drivers/gpu/drm/imagination/pvr_queue.c
+++ b/drivers/gpu/drm/imagination/pvr_queue.c
@@ -817,9 +817,19 @@ static struct dma_fence *pvr_queue_run_job(struct 
drm_sched_job *sched_job)
                trace_pvr_job_submit_fw(job);
        }
 
+       err = pvr_job_get_pm_ref(job);
+
        if (WARN_ON(err))
                goto err_release;
 
+       if (job->paired_job) {
+               err = pvr_job_get_pm_ref(job->paired_job);
+               if (WARN_ON(err)) {
+                       pvr_job_release_pm_ref(job);
+                       goto err_release;
+               }
+       }
+
        return dma_fence_get(job->done_fence);
 
 err_release:

-- 
2.43.0

Reply via email to