From: Sunil Khatri Date: Fri, 24 Oct 2025 16:59:00 +0000 (+0530) Subject: drm/amdkfd: fix the clean up when amdgpu_hmm_range_alloc fails X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1017e393ad6d61756f7f35a6eb059a42a40818e6;p=thirdparty%2Fkernel%2Flinux.git drm/amdkfd: fix the clean up when amdgpu_hmm_range_alloc fails 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 Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c index 7f0ab73e23967..729aac81563cb 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c @@ -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);