aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/mm/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64/mm/init.c')
-rw-r--r--arch/ia64/mm/init.c41
1 files changed, 5 insertions, 36 deletions
diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
index d1fe4b402601..b6f7f43424ec 100644
--- a/arch/ia64/mm/init.c
+++ b/arch/ia64/mm/init.c
@@ -154,9 +154,8 @@ ia64_init_addr_space (void)
154void 154void
155free_initmem (void) 155free_initmem (void)
156{ 156{
157 free_reserved_area((unsigned long)ia64_imva(__init_begin), 157 free_reserved_area(ia64_imva(__init_begin), ia64_imva(__init_end),
158 (unsigned long)ia64_imva(__init_end), 158 -1, "unused kernel");
159 0, "unused kernel");
160} 159}
161 160
162void __init 161void __init
@@ -546,19 +545,6 @@ int __init register_active_ranges(u64 start, u64 len, int nid)
546 return 0; 545 return 0;
547} 546}
548 547
549static int __init
550count_reserved_pages(u64 start, u64 end, void *arg)
551{
552 unsigned long num_reserved = 0;
553 unsigned long *count = arg;
554
555 for (; start < end; start += PAGE_SIZE)
556 if (PageReserved(virt_to_page(start)))
557 ++num_reserved;
558 *count += num_reserved;
559 return 0;
560}
561
562int 548int
563find_max_min_low_pfn (u64 start, u64 end, void *arg) 549find_max_min_low_pfn (u64 start, u64 end, void *arg)
564{ 550{
@@ -597,8 +583,6 @@ __setup("nolwsys", nolwsys_setup);
597void __init 583void __init
598mem_init (void) 584mem_init (void)
599{ 585{
600 long reserved_pages, codesize, datasize, initsize;
601 pg_data_t *pgdat;
602 int i; 586 int i;
603 587
604 BUG_ON(PTRS_PER_PGD * sizeof(pgd_t) != PAGE_SIZE); 588 BUG_ON(PTRS_PER_PGD * sizeof(pgd_t) != PAGE_SIZE);
@@ -616,27 +600,12 @@ mem_init (void)
616 600
617#ifdef CONFIG_FLATMEM 601#ifdef CONFIG_FLATMEM
618 BUG_ON(!mem_map); 602 BUG_ON(!mem_map);
619 max_mapnr = max_low_pfn;
620#endif 603#endif
621 604
605 set_max_mapnr(max_low_pfn);
622 high_memory = __va(max_low_pfn * PAGE_SIZE); 606 high_memory = __va(max_low_pfn * PAGE_SIZE);
623 607 free_all_bootmem();
624 for_each_online_pgdat(pgdat) 608 mem_init_print_info(NULL);
625 if (pgdat->bdata->node_bootmem_map)
626 totalram_pages += free_all_bootmem_node(pgdat);
627
628 reserved_pages = 0;
629 efi_memmap_walk(count_reserved_pages, &reserved_pages);
630
631 codesize = (unsigned long) _etext - (unsigned long) _stext;
632 datasize = (unsigned long) _edata - (unsigned long) _etext;
633 initsize = (unsigned long) __init_end - (unsigned long) __init_begin;
634
635 printk(KERN_INFO "Memory: %luk/%luk available (%luk code, %luk reserved, "
636 "%luk data, %luk init)\n", nr_free_pages() << (PAGE_SHIFT - 10),
637 num_physpages << (PAGE_SHIFT - 10), codesize >> 10,
638 reserved_pages << (PAGE_SHIFT - 10), datasize >> 10, initsize >> 10);
639
640 609
641 /* 610 /*
642 * For fsyscall entrpoints with no light-weight handler, use the ordinary 611 * For fsyscall entrpoints with no light-weight handler, use the ordinary