aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/mm/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/tile/mm/init.c')
-rw-r--r--arch/tile/mm/init.c26
1 files changed, 5 insertions, 21 deletions
diff --git a/arch/tile/mm/init.c b/arch/tile/mm/init.c
index 2749515a0547..e182958c707d 100644
--- a/arch/tile/mm/init.c
+++ b/arch/tile/mm/init.c
@@ -562,7 +562,7 @@ static void __init kernel_physical_mapping_init(pgd_t *pgd_base)
562 prot = ktext_set_nocache(prot); 562 prot = ktext_set_nocache(prot);
563 } 563 }
564 564
565 BUG_ON(address != (unsigned long)_stext); 565 BUG_ON(address != (unsigned long)_text);
566 pte = NULL; 566 pte = NULL;
567 for (; address < (unsigned long)_einittext; 567 for (; address < (unsigned long)_einittext;
568 pfn++, address += PAGE_SIZE) { 568 pfn++, address += PAGE_SIZE) {
@@ -720,7 +720,7 @@ static void __init init_free_pfn_range(unsigned long start, unsigned long end)
720 } 720 }
721 init_page_count(page); 721 init_page_count(page);
722 __free_pages(page, order); 722 __free_pages(page, order);
723 totalram_pages += count; 723 adjust_managed_page_count(page, count);
724 724
725 page += count; 725 page += count;
726 pfn += count; 726 pfn += count;
@@ -821,7 +821,6 @@ static void __init set_max_mapnr_init(void)
821 821
822void __init mem_init(void) 822void __init mem_init(void)
823{ 823{
824 int codesize, datasize, initsize;
825 int i; 824 int i;
826#ifndef __tilegx__ 825#ifndef __tilegx__
827 void *last; 826 void *last;
@@ -846,26 +845,14 @@ void __init mem_init(void)
846 set_max_mapnr_init(); 845 set_max_mapnr_init();
847 846
848 /* this will put all bootmem onto the freelists */ 847 /* this will put all bootmem onto the freelists */
849 totalram_pages += free_all_bootmem(); 848 free_all_bootmem();
850 849
851#ifndef CONFIG_64BIT 850#ifndef CONFIG_64BIT
852 /* count all remaining LOWMEM and give all HIGHMEM to page allocator */ 851 /* count all remaining LOWMEM and give all HIGHMEM to page allocator */
853 set_non_bootmem_pages_init(); 852 set_non_bootmem_pages_init();
854#endif 853#endif
855 854
856 codesize = (unsigned long)&_etext - (unsigned long)&_text; 855 mem_init_print_info(NULL);
857 datasize = (unsigned long)&_end - (unsigned long)&_sdata;
858 initsize = (unsigned long)&_einittext - (unsigned long)&_sinittext;
859 initsize += (unsigned long)&_einitdata - (unsigned long)&_sinitdata;
860
861 pr_info("Memory: %luk/%luk available (%dk kernel code, %dk data, %dk init, %ldk highmem)\n",
862 (unsigned long) nr_free_pages() << (PAGE_SHIFT-10),
863 num_physpages << (PAGE_SHIFT-10),
864 codesize >> 10,
865 datasize >> 10,
866 initsize >> 10,
867 (unsigned long) (totalhigh_pages << (PAGE_SHIFT-10))
868 );
869 856
870 /* 857 /*
871 * In debug mode, dump some interesting memory mappings. 858 * In debug mode, dump some interesting memory mappings.
@@ -1024,16 +1011,13 @@ static void free_init_pages(char *what, unsigned long begin, unsigned long end)
1024 pte_clear(&init_mm, addr, ptep); 1011 pte_clear(&init_mm, addr, ptep);
1025 continue; 1012 continue;
1026 } 1013 }
1027 __ClearPageReserved(page);
1028 init_page_count(page);
1029 if (pte_huge(*ptep)) 1014 if (pte_huge(*ptep))
1030 BUG_ON(!kdata_huge); 1015 BUG_ON(!kdata_huge);
1031 else 1016 else
1032 set_pte_at(&init_mm, addr, ptep, 1017 set_pte_at(&init_mm, addr, ptep,
1033 pfn_pte(pfn, PAGE_KERNEL)); 1018 pfn_pte(pfn, PAGE_KERNEL));
1034 memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE); 1019 memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE);
1035 free_page(addr); 1020 free_reserved_page(page);
1036 totalram_pages++;
1037 } 1021 }
1038 pr_info("Freeing %s: %ldk freed\n", what, (end - begin) >> 10); 1022 pr_info("Freeing %s: %ldk freed\n", what, (end - begin) >> 10);
1039} 1023}