Skip to content

Commit e4b5ccd

Browse files
committed
drm/v3d: Ensure job pointer is set to NULL after job completion
After a job completes, the corresponding pointer in the device must be set to NULL. Failing to do so triggers a warning when unloading the driver, as it appears the job is still active. To prevent this, assign the job pointer to NULL after completing the job, indicating the job has finished. Fixes: 14d1d19 ("drm/v3d: Remove the bad signaled() implementation.") Signed-off-by: Maíra Canal <mcanal@igalia.com> Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com> Link: https://patchwork.freedesktop.org/patch/msgid/20250113154741.67520-1-mcanal@igalia.com
1 parent b7d4062 commit e4b5ccd

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

drivers/gpu/drm/v3d/v3d_irq.c

+4
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ v3d_irq(int irq, void *arg)
108108
v3d_job_update_stats(&v3d->bin_job->base, V3D_BIN);
109109
trace_v3d_bcl_irq(&v3d->drm, fence->seqno);
110110
dma_fence_signal(&fence->base);
111+
v3d->bin_job = NULL;
111112
status = IRQ_HANDLED;
112113
}
113114

@@ -118,6 +119,7 @@ v3d_irq(int irq, void *arg)
118119
v3d_job_update_stats(&v3d->render_job->base, V3D_RENDER);
119120
trace_v3d_rcl_irq(&v3d->drm, fence->seqno);
120121
dma_fence_signal(&fence->base);
122+
v3d->render_job = NULL;
121123
status = IRQ_HANDLED;
122124
}
123125

@@ -128,6 +130,7 @@ v3d_irq(int irq, void *arg)
128130
v3d_job_update_stats(&v3d->csd_job->base, V3D_CSD);
129131
trace_v3d_csd_irq(&v3d->drm, fence->seqno);
130132
dma_fence_signal(&fence->base);
133+
v3d->csd_job = NULL;
131134
status = IRQ_HANDLED;
132135
}
133136

@@ -165,6 +168,7 @@ v3d_hub_irq(int irq, void *arg)
165168
v3d_job_update_stats(&v3d->tfu_job->base, V3D_TFU);
166169
trace_v3d_tfu_irq(&v3d->drm, fence->seqno);
167170
dma_fence_signal(&fence->base);
171+
v3d->tfu_job = NULL;
168172
status = IRQ_HANDLED;
169173
}
170174

0 commit comments

Comments
 (0)