]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe/svm: fix dereferencing error pointer in drm_gpusvm_range_alloc()
authorHarshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Sun, 23 Mar 2025 12:49:06 +0000 (05:49 -0700)
committerLucas De Marchi <lucas.demarchi@intel.com>
Tue, 29 Apr 2025 05:18:27 +0000 (22:18 -0700)
xe_svm_range_alloc() returns ERR_PTR(-ENOMEM) on failure and there is a
dereference of "range" after that:

-->     range->gpusvm = gpusvm;

In xe_svm_range_alloc(), when memory allocation fails return NULL
instead to handle this situation.

Fixes: 99624bdff867 ("drm/gpusvm: Add support for GPU Shared Virtual Memory")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/all/adaef4dd-5866-48ca-bc22-4a1ddef20381@stanley.mountain/
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Link: https://lore.kernel.org/r/20250323124907.3946370-1-harshit.m.mogalapalli@oracle.com
(cherry picked from commit 7a0322122cfdd9a6f10fc7701023d75c98eb3d22)
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/xe_svm.c

index f8c128524d9f33d5cdc2253b3e8b643e7e7eb96a..0b6547c06961a0e7c44377837e7045b694ad096e 100644 (file)
@@ -79,7 +79,7 @@ xe_svm_range_alloc(struct drm_gpusvm *gpusvm)
 
        range = kzalloc(sizeof(*range), GFP_KERNEL);
        if (!range)
-               return ERR_PTR(-ENOMEM);
+               return NULL;
 
        INIT_LIST_HEAD(&range->garbage_collector_link);
        xe_vm_get(gpusvm_to_vm(gpusvm));