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

Commit 421520ba authored by Yalin Wang's avatar Yalin Wang Committed by Russell King
Browse files

ARM: 8167/1: extend the reserved memory for initrd to be page aligned



This patch extends the start and end address of initrd to be page aligned,
so that we can free all memory including the un-page aligned head or tail
page of initrd, if the start or end address of initrd are not page
aligned, the page can't be freed by free_initrd_mem() function.

Signed-off-by: default avatarYalin Wang <yalin.wang@sonymobile.com>
Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 562c85ca
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -636,6 +636,11 @@ static int keep_initrd;
void free_initrd_mem(unsigned long start, unsigned long end)
{
	if (!keep_initrd) {
		if (start == initrd_start)
			start = round_down(start, PAGE_SIZE);
		if (end == initrd_end)
			end = round_up(end, PAGE_SIZE);

		poison_init_mem((void *)start, PAGE_ALIGN(end) - start);
		free_reserved_area((void *)start, (void *)end, -1, "initrd");
	}
+7 −1
Original line number Diff line number Diff line
@@ -334,9 +334,15 @@ static int keep_initrd;

void free_initrd_mem(unsigned long start, unsigned long end)
{
	if (!keep_initrd)
	if (!keep_initrd) {
		if (start == initrd_start)
			start = round_down(start, PAGE_SIZE);
		if (end == initrd_end)
			end = round_up(end, PAGE_SIZE);

		free_reserved_area((void *)start, (void *)end, 0, "initrd");
	}
}

static int __init keepinitrd_setup(char *__unused)
{