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

Commit 5d5ac31f authored by Shiraz Hashim's avatar Shiraz Hashim
Browse files

mm: zbud: initialize object to 0 on GFP_ZERO



zbud_alloc if returns free object from pool must also
initialize it to 0 when asked to do so. The same is
already taken care if a fresh object is allocated.

CRs-fixed: 979234
Change-Id: Id171edf131df321385fcdcd7660d06da97689e3e
Signed-off-by: default avatarShiraz Hashim <shashim@codeaurora.org>
parent 2642c0ad
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -342,6 +342,7 @@ int zbud_alloc(struct zbud_pool *pool, size_t size, gfp_t gfp,
	struct zbud_header *zhdr = NULL;
	enum buddy bud;
	struct page *page;
	int found = 0;

	if (!size || (gfp & __GFP_HIGHMEM))
		return -EINVAL;
@@ -361,6 +362,7 @@ int zbud_alloc(struct zbud_pool *pool, size_t size, gfp_t gfp,
				bud = FIRST;
			else
				bud = LAST;
			found = 1;
			goto found;
		}
	}
@@ -396,6 +398,8 @@ found:
	list_add(&zhdr->lru, &pool->lru);

	*handle = encode_handle(zhdr, bud);
	if ((gfp & __GFP_ZERO) && found)
		memset((void *)*handle, 0, size);
	spin_unlock(&pool->lock);

	return 0;