summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2020-01-06 03:16:02 +0100
committerBen Skeggs <bskeggs@redhat.com>2020-04-07 06:37:49 +0200
commit8a39db76e79ef502f5d2c1865358e9025b5fa38a (patch)
treeab3611ef6872cbf674943bd94827c22f8941def4
parentMerge branch 'ttm-transhuge' of git://people.freedesktop.org/~thomash/linux i... (diff)
downloadlinux-8a39db76e79ef502f5d2c1865358e9025b5fa38a.tar.xz
linux-8a39db76e79ef502f5d2c1865358e9025b5fa38a.zip
drm/nouveau/ttm: evict other IO mappings when running out of BAR1 space
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bo.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 2b4b21b02e40..c40f127de3d0 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -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;