]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe/svm: Avoid duplicate eviction on get_pages() failure
authorHimal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Mon, 26 May 2025 16:39:07 +0000 (22:09 +0530)
committerHimal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Wed, 28 May 2025 10:14:34 +0000 (15:44 +0530)
xe_svm_range_get_pages() already calls drm_gpusvm_range_evict()
internally when it fails with -EOPNOTSUPP. Remove the eviction
call in the caller to prevent duplicate handling.

Fixes: e0ff0d7cf928 ("drm/xe/svm: Refactor usage of drm_gpusvm* function in xe_svm")
Cc: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://lore.kernel.org/r/20250526163907.1011529-1-himal.prasad.ghimiray@intel.com
Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
drivers/gpu/drm/xe/xe_svm.c

index 4432685936ed4e5b880714d7b34e63d59a48de59..871ac81bb04aaf297682c9aa9c4fcd5904a4238b 100644 (file)
@@ -914,11 +914,6 @@ retry:
        if (err == -EOPNOTSUPP || err == -EFAULT || err == -EPERM) {
                ctx.timeslice_ms <<= 1; /* Double timeslice if we have to retry */
                if (migrate_try_count > 0 || !ctx.devmem_only) {
-                       if (err == -EOPNOTSUPP) {
-                               range_debug(range, "PAGE FAULT - EVICT PAGES");
-                               drm_gpusvm_range_evict(&vm->svm.gpusvm,
-                                                      &range->base);
-                       }
                        drm_dbg(&vm->xe->drm,
                                "Get pages failed, falling back to retrying, asid=%u, gpusvm=%p, errno=%pe\n",
                                vm->usm.asid, &vm->svm.gpusvm, ERR_PTR(err));