]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
accel/amdxdna: Fix dma_fence leak when job is canceled
authorLizhi Hou <lizhi.hou@amd.com>
Wed, 5 Nov 2025 19:41:40 +0000 (11:41 -0800)
committerLizhi Hou <lizhi.hou@amd.com>
Thu, 6 Nov 2025 17:23:42 +0000 (09:23 -0800)
Currently, dma_fence_put(job->fence) is called in job notification
callback. However, if a job is canceled, the notification callback is never
invoked, leading to a memory leak. Move dma_fence_put(job->fence)
to the job cleanup function to ensure the fence is always released.

Fixes: aac243092b70 ("accel/amdxdna: Add command execution")
Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>
Signed-off-by: Lizhi Hou <lizhi.hou@amd.com>
Link: https://patch.msgid.link/20251105194140.1004314-1-lizhi.hou@amd.com
drivers/accel/amdxdna/aie2_ctx.c
drivers/accel/amdxdna/amdxdna_ctx.c

index b78c47ed0d34daa2b6ad7930d4078c74e4cca47e..bdc90fe8a47eed2828b1674c472439f0ea707d64 100644 (file)
@@ -189,7 +189,6 @@ aie2_sched_notify(struct amdxdna_sched_job *job)
 
        up(&job->hwctx->priv->job_sem);
        job->job_done = true;
-       dma_fence_put(fence);
        mmput_async(job->mm);
        aie2_job_put(job);
 }
index 878cc955f56db09560c8cd62ef03d4b879f50935..d17aef89a0addd7ef77b499e0f60e7f39cf65d47 100644 (file)
@@ -422,6 +422,7 @@ void amdxdna_sched_job_cleanup(struct amdxdna_sched_job *job)
        trace_amdxdna_debug_point(job->hwctx->name, job->seq, "job release");
        amdxdna_arg_bos_put(job);
        amdxdna_gem_put_obj(job->cmd_bo);
+       dma_fence_put(job->fence);
 }
 
 int amdxdna_cmd_submit(struct amdxdna_client *client,