accel/amdxdna: Replace mmput with mmput_async to avoid dead lock
authorLizhi Hou <lizhi.hou@amd.com>
Fri, 6 Dec 2024 21:59:55 +0000 (13:59 -0800)
committerJeffrey Hugo <quic_jhugo@quicinc.com>
Fri, 13 Dec 2024 16:32:57 +0000 (09:32 -0700)
Hardware mailbox message receiving handler calls mmput to release the
process mm. If the process has already exited, the mmput here may call mmu
notifier handler, amdxdna_hmm_invalidate, which will cause a dead lock.
Using mmput_async instead prevents this dead lock.

Fixes: aac243092b70 ("accel/amdxdna: Add command execution")
Signed-off-by: Lizhi Hou <lizhi.hou@amd.com>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Signed-off-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241206220001.164049-3-lizhi.hou@amd.com
drivers/accel/amdxdna/aie2_ctx.c

index 90e8d87..b528255 100644 (file)
@@ -179,7 +179,7 @@ aie2_sched_notify(struct amdxdna_sched_job *job)
        up(&job->hwctx->priv->job_sem);
        job->job_done = true;
        dma_fence_put(fence);
-       mmput(job->mm);
+       mmput_async(job->mm);
        aie2_job_put(job);
 }