|
35 | 35 | #include <asm/pgalloc.h> |
36 | 36 | #include <asm/tlb.h> |
37 | 37 |
|
38 | | -/* |
39 | | - * We have up to 8 empty zeroed pages so we can map one of the right colour |
40 | | - * when needed. Since page is never written to after the initialization we |
41 | | - * don't have to care about aliases on other CPUs. |
42 | | - */ |
43 | | -unsigned long empty_zero_page, zero_page_mask; |
| 38 | +unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)] __page_aligned_bss; |
44 | 39 | EXPORT_SYMBOL(empty_zero_page); |
45 | | -EXPORT_SYMBOL(zero_page_mask); |
46 | | - |
47 | | -void setup_zero_pages(void) |
48 | | -{ |
49 | | - unsigned int order, i; |
50 | | - struct page *page; |
51 | | - |
52 | | - order = 0; |
53 | | - |
54 | | - empty_zero_page = __get_free_pages(GFP_KERNEL | __GFP_ZERO, order); |
55 | | - if (!empty_zero_page) |
56 | | - panic("Oh boy, that early out of memory?"); |
57 | | - |
58 | | - page = virt_to_page((void *)empty_zero_page); |
59 | | - split_page(page, order); |
60 | | - for (i = 0; i < (1 << order); i++, page++) |
61 | | - mark_page_reserved(page); |
62 | | - |
63 | | - zero_page_mask = ((PAGE_SIZE << order) - 1) & PAGE_MASK; |
64 | | -} |
65 | 40 |
|
66 | 41 | void copy_user_highpage(struct page *to, struct page *from, |
67 | 42 | unsigned long vaddr, struct vm_area_struct *vma) |
@@ -106,7 +81,6 @@ void __init mem_init(void) |
106 | 81 | high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT); |
107 | 82 |
|
108 | 83 | memblock_free_all(); |
109 | | - setup_zero_pages(); /* Setup zeroed pages. */ |
110 | 84 | } |
111 | 85 | #endif /* !CONFIG_NUMA */ |
112 | 86 |
|
|
0 commit comments