drm/nouveau/ttm: evict other IO mappings when running out of BAR1 space
authorBen Skeggs <bskeggs@redhat.com>
Mon, 6 Jan 2020 02:16:02 +0000 (12:16 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 7 Apr 2020 04:37:49 +0000 (14:37 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_bo.c

index 2b4b21b..c40f127 100644 (file)
@@ -1494,8 +1494,13 @@ nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *reg)
                        ret = nvif_object_map_handle(&mem->mem.object,
                                                     &args, argc,
                                                     &handle, &length);
-                       if (ret != 1)
-                               return ret ? ret : -EINVAL;
+                       if (ret != 1) {
+                               if (WARN_ON(ret == 0))
+                                       return -EINVAL;
+                               if (ret == -ENOSPC)
+                                       return -EAGAIN;
+                               return ret;
+                       }
 
                        reg->bus.base = 0;
                        reg->bus.offset = handle;