Commit 17c8b960 authored by Marcin Slusarz's avatar Marcin Slusarz Committed by Ben Skeggs
Browse files

drm/nouveau: properly handle allocation failure in nouveau_sgdma_populate



Not cleaning after alloc failure would result in crash on destroy,
because nouveau_sgdma_clear assumes "ttm_alloced" to be not null when
"pages" is not null.

Signed-off-by: default avatarMarcin Slusarz <marcin.slusarz@gmail.com>
Cc: stable@kernel.org
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent cfd8be08
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -37,8 +37,11 @@ nouveau_sgdma_populate(struct ttm_backend *be, unsigned long num_pages,
		return -ENOMEM;

	nvbe->ttm_alloced = kmalloc(sizeof(bool) * num_pages, GFP_KERNEL);
	if (!nvbe->ttm_alloced)
	if (!nvbe->ttm_alloced) {
		kfree(nvbe->pages);
		nvbe->pages = NULL;
		return -ENOMEM;
	}

	nvbe->nr_pages = 0;
	while (num_pages--) {