]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdkfd: fix the clean up when amdgpu_hmm_range_alloc fails
authorSunil Khatri <sunil.khatri@amd.com>
Fri, 24 Oct 2025 16:59:00 +0000 (22:29 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 28 Oct 2025 14:00:35 +0000 (10:00 -0400)
we need to unreserve the bo's too during clean up along
with freeing the memory of context.

Fixes: 7bb02a34c2ba ("drm/amdkfd: add missing return value check for range")
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_svm.c

index 7f0ab73e23967f9a5ca1f1143756eb32dcd5bfd9..729aac81563cb26796a2fa16cc80542a780ff810 100644 (file)
@@ -1738,14 +1738,11 @@ static int svm_range_validate_and_map(struct mm_struct *mm,
 
                        WRITE_ONCE(p->svms.faulting_task, current);
                        range = amdgpu_hmm_range_alloc(NULL);
-                       if (unlikely(!range)) {
+                       if (likely(range))
+                               r = amdgpu_hmm_range_get_pages(&prange->notifier, addr, npages,
+                                                              readonly, owner, range);
+                       else
                                r = -ENOMEM;
-                               goto free_ctx;
-                       }
-
-                       r = amdgpu_hmm_range_get_pages(&prange->notifier, addr, npages,
-                                                      readonly, owner,
-                                                      range);
                        WRITE_ONCE(p->svms.faulting_task, NULL);
                        if (r) {
                                amdgpu_hmm_range_free(range);