Browse Source

drm/nouveau: fix handling of GART OOM on pre-NV50 chipsets

The correct thing to do on OOM is to return 0 and set mm_node to NULL,
otherwise TTM will assume some other kind of error, and not attempt to
evict other buffers to make space.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs 7 years ago
parent
commit
bbb10e6398
1 changed files with 4 additions and 0 deletions
  1. 4 0
      drivers/gpu/drm/nouveau/nouveau_ttm.c

+ 4 - 0
drivers/gpu/drm/nouveau/nouveau_ttm.c

@@ -243,6 +243,10 @@ nv04_gart_manager_new(struct ttm_mem_type_manager *man,
 	ret = nvkm_vm_get(man->priv, reg->num_pages << 12, node->page_shift,
 			  NV_MEM_ACCESS_RW, &node->vma[0]);
 	if (ret) {
+		if (ret == -ENOSPC) {
+			reg->mm_node = NULL;
+			ret = 0;
+		}
 		kfree(node);
 		return ret;
 	}