diff options
author | Sage Weil <sage@inktank.com> | 2013-08-15 14:11:45 -0400 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-08-15 14:11:45 -0400 |
commit | ee3e542fec6e69bc9fb668698889a37d93950ddf (patch) | |
tree | e74ee766a4764769ef1d3d45d266b4dea64101d3 /arch/tile/mm | |
parent | fe2a801b50c0bb8039d627e5ae1fec249d10ff39 (diff) | |
parent | f1d6e17f540af37bb1891480143669ba7636c4cf (diff) |
Merge remote-tracking branch 'linus/master' into testing
Diffstat (limited to 'arch/tile/mm')
-rw-r--r-- | arch/tile/mm/fault.c | 8 | ||||
-rw-r--r-- | arch/tile/mm/init.c | 26 | ||||
-rw-r--r-- | arch/tile/mm/mmap.c | 2 |
3 files changed, 9 insertions, 27 deletions
diff --git a/arch/tile/mm/fault.c b/arch/tile/mm/fault.c index 3d2b81c163a6..f7f99f90cbe0 100644 --- a/arch/tile/mm/fault.c +++ b/arch/tile/mm/fault.c | |||
@@ -573,10 +573,10 @@ out_of_memory: | |||
573 | down_read(&mm->mmap_sem); | 573 | down_read(&mm->mmap_sem); |
574 | goto survive; | 574 | goto survive; |
575 | } | 575 | } |
576 | pr_alert("VM: killing process %s\n", tsk->comm); | 576 | if (is_kernel_mode) |
577 | if (!is_kernel_mode) | 577 | goto no_context; |
578 | do_group_exit(SIGKILL); | 578 | pagefault_out_of_memory(); |
579 | goto no_context; | 579 | return 0; |
580 | 580 | ||
581 | do_sigbus: | 581 | do_sigbus: |
582 | up_read(&mm->mmap_sem); | 582 | up_read(&mm->mmap_sem); |
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 | ||
822 | void __init mem_init(void) | 822 | void __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 | } |
diff --git a/arch/tile/mm/mmap.c b/arch/tile/mm/mmap.c index f96f4cec602a..d67d91ebf63e 100644 --- a/arch/tile/mm/mmap.c +++ b/arch/tile/mm/mmap.c | |||
@@ -66,10 +66,8 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
66 | if (!is_32bit || rlimit(RLIMIT_STACK) == RLIM_INFINITY) { | 66 | if (!is_32bit || rlimit(RLIMIT_STACK) == RLIM_INFINITY) { |
67 | mm->mmap_base = TASK_UNMAPPED_BASE; | 67 | mm->mmap_base = TASK_UNMAPPED_BASE; |
68 | mm->get_unmapped_area = arch_get_unmapped_area; | 68 | mm->get_unmapped_area = arch_get_unmapped_area; |
69 | mm->unmap_area = arch_unmap_area; | ||
70 | } else { | 69 | } else { |
71 | mm->mmap_base = mmap_base(mm); | 70 | mm->mmap_base = mmap_base(mm); |
72 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; | 71 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; |
73 | mm->unmap_area = arch_unmap_area_topdown; | ||
74 | } | 72 | } |
75 | } | 73 | } |