aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/mm/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/mm/init.c')
-rw-r--r--arch/sh/mm/init.c43
1 files changed, 9 insertions, 34 deletions
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c
index 20f9ead650d3..33890fd267cb 100644
--- a/arch/sh/mm/init.c
+++ b/arch/sh/mm/init.c
@@ -407,30 +407,16 @@ unsigned int mem_init_done = 0;
407 407
408void __init mem_init(void) 408void __init mem_init(void)
409{ 409{
410 int codesize, datasize, initsize; 410 pg_data_t *pgdat;
411 int nid;
412 411
413 iommu_init(); 412 iommu_init();
414 413
415 num_physpages = 0;
416 high_memory = NULL; 414 high_memory = NULL;
415 for_each_online_pgdat(pgdat)
416 high_memory = max_t(void *, high_memory,
417 __va(pgdat_end_pfn(pgdat) << PAGE_SHIFT));
417 418
418 for_each_online_node(nid) { 419 free_all_bootmem();
419 pg_data_t *pgdat = NODE_DATA(nid);
420 void *node_high_memory;
421
422 num_physpages += pgdat->node_present_pages;
423
424 if (pgdat->node_spanned_pages)
425 totalram_pages += free_all_bootmem_node(pgdat);
426
427
428 node_high_memory = (void *)__va((pgdat->node_start_pfn +
429 pgdat->node_spanned_pages) <<
430 PAGE_SHIFT);
431 if (node_high_memory > high_memory)
432 high_memory = node_high_memory;
433 }
434 420
435 /* Set this up early, so we can take care of the zero page */ 421 /* Set this up early, so we can take care of the zero page */
436 cpu_cache_init(); 422 cpu_cache_init();
@@ -441,19 +427,8 @@ void __init mem_init(void)
441 427
442 vsyscall_init(); 428 vsyscall_init();
443 429
444 codesize = (unsigned long) &_etext - (unsigned long) &_text; 430 mem_init_print_info(NULL);
445 datasize = (unsigned long) &_edata - (unsigned long) &_etext; 431 pr_info("virtual kernel memory layout:\n"
446 initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin;
447
448 printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, "
449 "%dk data, %dk init)\n",
450 nr_free_pages() << (PAGE_SHIFT-10),
451 num_physpages << (PAGE_SHIFT-10),
452 codesize >> 10,
453 datasize >> 10,
454 initsize >> 10);
455
456 printk(KERN_INFO "virtual kernel memory layout:\n"
457 " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n" 432 " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n"
458#ifdef CONFIG_HIGHMEM 433#ifdef CONFIG_HIGHMEM
459 " pkmap : 0x%08lx - 0x%08lx (%4ld kB)\n" 434 " pkmap : 0x%08lx - 0x%08lx (%4ld kB)\n"
@@ -499,13 +474,13 @@ void __init mem_init(void)
499 474
500void free_initmem(void) 475void free_initmem(void)
501{ 476{
502 free_initmem_default(0); 477 free_initmem_default(-1);
503} 478}
504 479
505#ifdef CONFIG_BLK_DEV_INITRD 480#ifdef CONFIG_BLK_DEV_INITRD
506void free_initrd_mem(unsigned long start, unsigned long end) 481void free_initrd_mem(unsigned long start, unsigned long end)
507{ 482{
508 free_reserved_area(start, end, 0, "initrd"); 483 free_reserved_area((void *)start, (void *)end, -1, "initrd");
509} 484}
510#endif 485#endif
511 486