]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/amdgpu: Add a NULL check for freeing root PT
authorShashank Sharma <shashank.sharma@amd.com>
Thu, 21 Mar 2024 14:21:00 +0000 (15:21 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 22 Mar 2024 19:51:55 +0000 (15:51 -0400)
This patch adds a NULL check to fix this crash reported during the
freeing of root PT entry:

 BUG: unable to handle page fault for address: ffffc9002d637aa0
 #PF: supervisor write access in kernel mode
 #PF: error_code(0x0002) - not-present page
 RIP: 0010:amdgpu_vm_pt_free+0x66/0xe0 [amdgpu]
 PKRU: 55555554
 Call Trace:
 <TASK>
  amdgpu_vm_pt_free_root+0x60/0xa0 [amdgpu]
  amdgpu_vm_fini+0x2cb/0x5d0 [amdgpu]
  ? amdgpu_ctx_mgr_entity_fini+0x53/0x1c0 [amdgpu]
  amdgpu_driver_postclose_kms+0x191/0x2d0 [amdgpu]
  drm_file_free.part.0+0x1e5/0x260 [drm]

Cc: Christian König <Christian.Koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Felix Kuehling <felix.kuehling@amd.com>
Cc: Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
Acked-by: Christian König <Christian.Koenig@amd.com>
Signed-off-by: Shashank Sharma <shashank.sharma@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c

index cbe0ae4c8738c8bd504cdca9722c480bd1701c2f..7fdd306a48a0ecb3729a3632c1c38385802e295c 100644 (file)
@@ -688,8 +688,10 @@ void amdgpu_vm_pt_free_root(struct amdgpu_device *adev, struct amdgpu_vm *vm)
        struct amdgpu_vm_pt_cursor cursor;
        struct amdgpu_vm_bo_base *entry;
 
-       for_each_amdgpu_vm_pt_dfs_safe(adev, vm, NULL, cursor, entry)
-               amdgpu_vm_pt_free(entry);
+       for_each_amdgpu_vm_pt_dfs_safe(adev, vm, NULL, cursor, entry) {
+               if (entry)
+                       amdgpu_vm_pt_free(entry);
+       }
 }
 
 /**