Skip to content

Commit

Permalink
ARM: move freeing of highmem pages out of mem_init()
Browse files Browse the repository at this point in the history
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Russell King committed Oct 28, 2010
1 parent 47ea3c1 commit d0e775a
Showing 1 changed file with 17 additions and 10 deletions.
27 changes: 17 additions & 10 deletions arch/arm/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,22 @@ static void __init free_unused_memmap(struct meminfo *mi)
}
}

static void __init free_highpages(void)
{
#ifdef CONFIG_HIGHMEM
int i;

/* set highmem page free */
for_each_bank (i, &meminfo) {
unsigned long start = bank_pfn_start(&meminfo.bank[i]);
unsigned long end = bank_pfn_end(&meminfo.bank[i]);
if (start >= max_low_pfn + PHYS_PFN_OFFSET)
totalhigh_pages += free_area(start, end, NULL);
}
totalram_pages += totalhigh_pages;
#endif
}

/*
* mem_init() marks the free areas in the mem_map and tells us how much
* memory is free. This is done after various parts of the system have
Expand Down Expand Up @@ -465,16 +481,7 @@ void __init mem_init(void)
__phys_to_pfn(__pa(swapper_pg_dir)), NULL);
#endif

#ifdef CONFIG_HIGHMEM
/* set highmem page free */
for_each_bank (i, &meminfo) {
unsigned long start = bank_pfn_start(&meminfo.bank[i]);
unsigned long end = bank_pfn_end(&meminfo.bank[i]);
if (start >= max_low_pfn + PHYS_PFN_OFFSET)
totalhigh_pages += free_area(start, end, NULL);
}
totalram_pages += totalhigh_pages;
#endif
free_highpages();

reserved_pages = free_pages = 0;

Expand Down

0 comments on commit d0e775a

Please sign in to comment.