Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef1b2871 authored by Ben Skeggs's avatar Ben Skeggs Committed by Dave Airlie
Browse files

drm/nouveau: fix regression causing ttm to not be able to evict vram



TTM assumes an error condition from man->func->get_node() means that
something went horribly wrong, and causes it to bail.

The driver is supposed to return 0, and leave mm_node == NULL to
signal that it couldn't allocate any memory.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent fb62c00a
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -725,8 +725,10 @@ nouveau_vram_manager_new(struct ttm_mem_type_manager *man,
	ret = vram->get(dev, mem->num_pages << PAGE_SHIFT,
	ret = vram->get(dev, mem->num_pages << PAGE_SHIFT,
			mem->page_alignment << PAGE_SHIFT, size_nc,
			mem->page_alignment << PAGE_SHIFT, size_nc,
			(nvbo->tile_flags >> 8) & 0xff, &node);
			(nvbo->tile_flags >> 8) & 0xff, &node);
	if (ret)
	if (ret) {
		return ret;
		mem->mm_node = NULL;
		return (ret == -ENOSPC) ? 0 : ret;
	}


	node->page_shift = 12;
	node->page_shift = 12;
	if (nvbo->vma.node)
	if (nvbo->vma.node)
+1 −1
Original line number Original line Diff line number Diff line
@@ -123,7 +123,7 @@ nouveau_mm_get(struct nouveau_mm *rmm, int type, u32 size, u32 size_nc,
		return 0;
		return 0;
	}
	}


	return -ENOMEM;
	return -ENOSPC;
}
}


int
int