diff options
Diffstat (limited to 'arch/score')
-rw-r--r-- | arch/score/mm/init.c | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/arch/score/mm/init.c b/arch/score/mm/init.c index 7780eecc5a43..d496e9f1a601 100644 --- a/arch/score/mm/init.c +++ b/arch/score/mm/init.c | |||
@@ -32,44 +32,30 @@ | |||
32 | #include <linux/pagemap.h> | 32 | #include <linux/pagemap.h> |
33 | #include <linux/proc_fs.h> | 33 | #include <linux/proc_fs.h> |
34 | #include <linux/sched.h> | 34 | #include <linux/sched.h> |
35 | #include <asm-generic/sections.h> | 35 | #include <linux/initrd.h> |
36 | 36 | ||
37 | #include <asm/sections.h> | ||
37 | #include <asm/tlb.h> | 38 | #include <asm/tlb.h> |
38 | 39 | ||
39 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); | 40 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); |
40 | 41 | ||
41 | /* | ||
42 | * We have up to 8 empty zeroed pages so we can map one of the right colour | ||
43 | * when needed. | ||
44 | */ | ||
45 | unsigned long zero_page_mask; | ||
46 | unsigned long empty_zero_page; | 42 | unsigned long empty_zero_page; |
47 | EXPORT_SYMBOL_GPL(empty_zero_page); | 43 | EXPORT_SYMBOL_GPL(empty_zero_page); |
48 | 44 | ||
49 | static struct kcore_list kcore_mem, kcore_vmalloc; | 45 | static struct kcore_list kcore_mem, kcore_vmalloc; |
50 | 46 | ||
51 | unsigned long setup_zero_pages(void) | 47 | static unsigned long setup_zero_page(void) |
52 | { | 48 | { |
53 | unsigned int order = 0; | ||
54 | unsigned long size; | ||
55 | struct page *page; | 49 | struct page *page; |
56 | 50 | ||
57 | empty_zero_page = __get_free_pages(GFP_KERNEL | __GFP_ZERO, order); | 51 | empty_zero_page = __get_free_pages(GFP_KERNEL | __GFP_ZERO, 0); |
58 | if (!empty_zero_page) | 52 | if (!empty_zero_page) |
59 | panic("Oh boy, that early out of memory?"); | 53 | panic("Oh boy, that early out of memory?"); |
60 | 54 | ||
61 | page = virt_to_page((void *) empty_zero_page); | 55 | page = virt_to_page((void *) empty_zero_page); |
62 | split_page(page, order); | 56 | SetPageReserved(page); |
63 | while (page < virt_to_page((void *) (empty_zero_page + | ||
64 | (PAGE_SIZE << order)))) { | ||
65 | SetPageReserved(page); | ||
66 | page++; | ||
67 | } | ||
68 | |||
69 | size = PAGE_SIZE << order; | ||
70 | zero_page_mask = (size - 1) & PAGE_MASK; | ||
71 | 57 | ||
72 | return 1UL << order; | 58 | return 1UL; |
73 | } | 59 | } |
74 | 60 | ||
75 | #ifndef CONFIG_NEED_MULTIPLE_NODES | 61 | #ifndef CONFIG_NEED_MULTIPLE_NODES |
@@ -100,7 +86,7 @@ void __init mem_init(void) | |||
100 | max_mapnr = max_low_pfn; | 86 | max_mapnr = max_low_pfn; |
101 | high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT); | 87 | high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT); |
102 | totalram_pages += free_all_bootmem(); | 88 | totalram_pages += free_all_bootmem(); |
103 | totalram_pages -= setup_zero_pages(); /* Setup zeroed pages. */ | 89 | totalram_pages -= setup_zero_page(); /* Setup zeroed pages. */ |
104 | reservedpages = 0; | 90 | reservedpages = 0; |
105 | 91 | ||
106 | for (tmp = 0; tmp < max_low_pfn; tmp++) | 92 | for (tmp = 0; tmp < max_low_pfn; tmp++) |
@@ -129,7 +115,7 @@ void __init mem_init(void) | |||
129 | } | 115 | } |
130 | #endif /* !CONFIG_NEED_MULTIPLE_NODES */ | 116 | #endif /* !CONFIG_NEED_MULTIPLE_NODES */ |
131 | 117 | ||
132 | void free_init_pages(const char *what, unsigned long begin, unsigned long end) | 118 | static void free_init_pages(const char *what, unsigned long begin, unsigned long end) |
133 | { | 119 | { |
134 | unsigned long pfn; | 120 | unsigned long pfn; |
135 | 121 | ||
@@ -150,8 +136,8 @@ void free_init_pages(const char *what, unsigned long begin, unsigned long end) | |||
150 | void free_initrd_mem(unsigned long start, unsigned long end) | 136 | void free_initrd_mem(unsigned long start, unsigned long end) |
151 | { | 137 | { |
152 | free_init_pages("initrd memory", | 138 | free_init_pages("initrd memory", |
153 | virt_to_phys((void *) start), | 139 | virt_to_phys((void *) start), |
154 | virt_to_phys((void *) end)); | 140 | virt_to_phys((void *) end)); |
155 | } | 141 | } |
156 | #endif | 142 | #endif |
157 | 143 | ||