summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/imagination/pvr_job.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-04-25 11:51:21 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-04-25 11:51:21 +0300
commit7f0020417b7bceaa10cf9e1efe2b3f5c554d972e (patch)
tree69d11757acfb4bacfb5f82f6f0fbf04339b3cd38 /drivers/gpu/drm/imagination/pvr_job.c
parent616e143c9fd88562b4d2cb235834c620fe65ba22 (diff)
parentea061bad207e1ba693b5488ba64c663f7ca03f50 (diff)
downloadlinux-rolling-stable.tar.xz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpu/drm/imagination/pvr_job.c')
-rw-r--r--drivers/gpu/drm/imagination/pvr_job.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/imagination/pvr_job.c b/drivers/gpu/drm/imagination/pvr_job.c
index 618503a212a7..aad183a57371 100644
--- a/drivers/gpu/drm/imagination/pvr_job.c
+++ b/drivers/gpu/drm/imagination/pvr_job.c
@@ -677,6 +677,13 @@ pvr_jobs_link_geom_frag(struct pvr_job_data *job_data, u32 *job_count)
geom_job->paired_job = frag_job;
frag_job->paired_job = geom_job;
+ /* The geometry job pvr_job structure is used when the fragment
+ * job is being prepared by the GPU scheduler. Have the fragment
+ * job hold a reference on the geometry job to prevent it being
+ * freed until the fragment job has finished with it.
+ */
+ pvr_job_get(geom_job);
+
/* Skip the fragment job we just paired to the geometry job. */
i++;
}