mm/memory.c: fix race when faulting a device private page
[linux-block.git] / drivers / gpu / drm / amd / amdkfd / kfd_svm.c
index 11074cc8c333b274484929dddb0752725e4af24b..9139e5a0b2a07cc46029424f29f7842d7e192826 100644 (file)
@@ -2913,13 +2913,15 @@ retry_write_locked:
                                 */
                                if (prange->actual_loc)
                                        r = svm_migrate_vram_to_ram(prange, mm,
-                                          KFD_MIGRATE_TRIGGER_PAGEFAULT_GPU);
+                                          KFD_MIGRATE_TRIGGER_PAGEFAULT_GPU,
+                                          NULL);
                                else
                                        r = 0;
                        }
                } else {
                        r = svm_migrate_vram_to_ram(prange, mm,
-                                       KFD_MIGRATE_TRIGGER_PAGEFAULT_GPU);
+                                       KFD_MIGRATE_TRIGGER_PAGEFAULT_GPU,
+                                       NULL);
                }
                if (r) {
                        pr_debug("failed %d to migrate svms %p [0x%lx 0x%lx]\n",
@@ -3242,7 +3244,8 @@ svm_range_trigger_migration(struct mm_struct *mm, struct svm_range *prange,
                return 0;
 
        if (!best_loc) {
-               r = svm_migrate_vram_to_ram(prange, mm, KFD_MIGRATE_TRIGGER_PREFETCH);
+               r = svm_migrate_vram_to_ram(prange, mm,
+                                       KFD_MIGRATE_TRIGGER_PREFETCH, NULL);
                *migrated = !r;
                return r;
        }
@@ -3303,7 +3306,7 @@ static void svm_range_evict_svm_bo_worker(struct work_struct *work)
                mutex_lock(&prange->migrate_mutex);
                do {
                        r = svm_migrate_vram_to_ram(prange, mm,
-                                               KFD_MIGRATE_TRIGGER_TTM_EVICTION);
+                                       KFD_MIGRATE_TRIGGER_TTM_EVICTION, NULL);
                } while (!r && prange->actual_loc && --retries);
 
                if (!r && prange->actual_loc)