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

Commit a7dbf004 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau: allow creation of zero-sized mm



Useful for places where a given chipset may or may not have a given
resource, and we want to avoid having to spray checks for the mm's
existance around everywhere.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 1249ac59
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -218,13 +218,16 @@ nouveau_mm_init(struct nouveau_mm *mm, u32 offset, u32 length, u32 block)
	node = kzalloc(sizeof(*node), GFP_KERNEL);
	if (!node)
		return -ENOMEM;

	if (length) {
		node->offset  = roundup(offset, mm->block_size);
	node->length = rounddown(offset + length, mm->block_size) - node->offset;
		node->length  = rounddown(offset + length, mm->block_size);
		node->length -= node->offset;
	}

	list_add_tail(&node->nl_entry, &mm->nodes);
	list_add_tail(&node->fl_entry, &mm->free);
	mm->heap_nodes++;
	mm->heap_size += length;
	return 0;
}

+0 −1
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ struct nouveau_mm {

	u32 block_size;
	int heap_nodes;
	u32 heap_size;
};

int  nouveau_mm_init(struct nouveau_mm *, u32 offset, u32 length, u32 block);