[PATCH] drm: xe: selftests: fix fence refcount leak in run_sanity_job()

From: Wentao Liang

Date: Wed May 27 2026 - 03:05:44 EST


run_sanity_job() calls dma_fence_get() to take a reference on the
fence before submitting the migration job. If the job submission fails,
the function returns an error without calling dma_fence_put() on the
fence, leaking the reference.

Add dma_fence_put(fence) on the error path to properly release the
reference.

Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>
---
drivers/gpu/drm/xe/tests/xe_migrate.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/tests/xe_migrate.c b/drivers/gpu/drm/xe/tests/xe_migrate.c
index 34e2f0f4631f..36d4cff00e18 100644
--- a/drivers/gpu/drm/xe/tests/xe_migrate.c
+++ b/drivers/gpu/drm/xe/tests/xe_migrate.c
@@ -54,8 +54,10 @@ static int run_sanity_job(struct xe_migrate *m, struct xe_device *xe,
fence = dma_fence_get(&job->drm.s_fence->finished);
xe_sched_job_push(job);

- if (sanity_fence_failed(xe, fence, str, test))
+ if (sanity_fence_failed(xe, fence, str, test)) {
+ dma_fence_put(fence);
return -ETIMEDOUT;
+ }

dma_fence_put(fence);
kunit_info(test, "%s: Job completed\n", str);
--
2.34.1