[PATCH] drm/amdgpu: fix nullptr error of amdgpu_vm_handle_moved

Kasiviswanathan, Harish Harish.Kasiviswanathan at amd.com
Tue Aug 12 13:40:51 UTC 2025


[Public]

Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan at amd.com>



-----Original Message-----
From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Heng Zhou
Sent: Friday, August 8, 2025 6:32 AM
To: amd-gfx at lists.freedesktop.org
Cc: Lazar, Lijo <Lijo.Lazar at amd.com>; Koenig, Christian <Christian.Koenig at amd.com>; Deng, Emily <Emily.Deng at amd.com>; Zhao, Victor <Victor.Zhao at amd.com>; Kuehling, Felix <Felix.Kuehling at amd.com>; phasta at kernel.org; Ma, Qing (Mark) <Qing.Ma at amd.com>; Zhou, Heng <Heng.Zhou at amd.com>
Subject: [PATCH] drm/amdgpu: fix nullptr error of amdgpu_vm_handle_moved

If a amdgpu_bo_va is fpriv->prt_va, the bo of this one is always NULL.
So, such kind of amdgpu_bo_va should be updated separately before
amdgpu_vm_handle_moved.

Signed-off-by: Heng Zhou <Heng.Zhou at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
index 37d8a7034a7e..f0af292fa326 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -2970,9 +2970,22 @@ int amdgpu_amdkfd_gpuvm_restore_process_bos(void *info, struct dma_fence __rcu *
                struct amdgpu_device *adev = amdgpu_ttm_adev(
                        peer_vm->root.bo->tbo.bdev);

+               struct amdgpu_fpriv *fpriv =
+                       container_of(peer_vm, struct amdgpu_fpriv, vm);
+
+               ret = amdgpu_vm_bo_update(adev, fpriv->prt_va, false);
+               if (ret) {
+                       dev_dbg(adev->dev,
+                               "Memory eviction: handle PRT moved failed, pid %8d. Try again.\n",
+                               pid_nr(process_info->pid));
+                       goto validate_map_fail;
+               }
+
                ret = amdgpu_vm_handle_moved(adev, peer_vm, &exec.ticket);
                if (ret) {
-                       pr_debug("Memory eviction: handle moved failed. Try again\n");
+                       dev_dbg(adev->dev,
+                               "Memory eviction: handle moved failed, pid %8d. Try again.\n",
+                               pid_nr(process_info->pid));
                        goto validate_map_fail;
                }
        }
--
2.43.0



More information about the amd-gfx mailing list