|
|
|
@ -149,33 +149,11 @@ void __init print_memmap(void) |
|
|
|
|
void __init mem_init(void) |
|
|
|
|
{ |
|
|
|
|
pg_data_t *pgdat; |
|
|
|
|
int codepages = 0; |
|
|
|
|
int datapages = 0; |
|
|
|
|
int initpages = 0; |
|
|
|
|
int i; |
|
|
|
|
|
|
|
|
|
/* this will put all memory onto the freelists */ |
|
|
|
|
num_physpages = 0; |
|
|
|
|
for_each_online_pgdat(pgdat) { |
|
|
|
|
num_physpages += pgdat->node_present_pages; |
|
|
|
|
|
|
|
|
|
for_each_online_pgdat(pgdat) |
|
|
|
|
free_all_bootmem_node(pgdat); |
|
|
|
|
for (i = 0; i < pgdat->node_spanned_pages; i++) { |
|
|
|
|
struct page *page = pgdat->node_mem_map + i; |
|
|
|
|
char *addr = page_to_virt(page); |
|
|
|
|
|
|
|
|
|
if (!PageReserved(page)) |
|
|
|
|
continue; |
|
|
|
|
if (addr >= _text && |
|
|
|
|
addr < _etext) |
|
|
|
|
codepages++; |
|
|
|
|
else if (addr >= __init_begin && |
|
|
|
|
addr < __init_end) |
|
|
|
|
initpages++; |
|
|
|
|
else |
|
|
|
|
datapages++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#if defined(CONFIG_MMU) && !defined(CONFIG_SUN3) && !defined(CONFIG_COLDFIRE) |
|
|
|
|
/* insert pointer tables allocated so far into the tablelist */ |
|
|
|
@ -190,12 +168,7 @@ void __init mem_init(void) |
|
|
|
|
init_pointer_table((unsigned long)zero_pgtable); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
pr_info("Memory: %luk/%luk available (%dk kernel code, %dk data, %dk init)\n", |
|
|
|
|
nr_free_pages() << (PAGE_SHIFT-10), |
|
|
|
|
totalram_pages << (PAGE_SHIFT-10), |
|
|
|
|
codepages << (PAGE_SHIFT-10), |
|
|
|
|
datapages << (PAGE_SHIFT-10), |
|
|
|
|
initpages << (PAGE_SHIFT-10)); |
|
|
|
|
mem_init_print_info(NULL); |
|
|
|
|
print_memmap(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|