.. | .. |
---|
16 | 16 | #include <linux/string.h> |
---|
17 | 17 | #include <linux/types.h> |
---|
18 | 18 | #include <linux/init.h> |
---|
19 | | -#include <linux/bootmem.h> |
---|
| 19 | +#include <linux/memblock.h> |
---|
20 | 20 | |
---|
21 | 21 | #include <asm/setup.h> |
---|
22 | 22 | #include <linux/uaccess.h> |
---|
23 | 23 | #include <asm/page.h> |
---|
24 | | -#include <asm/pgtable.h> |
---|
25 | 24 | #include <asm/machdep.h> |
---|
26 | 25 | #include <asm/io.h> |
---|
27 | 26 | |
---|
.. | .. |
---|
42 | 41 | unsigned long address; |
---|
43 | 42 | unsigned long next_pgtable; |
---|
44 | 43 | unsigned long bootmem_end; |
---|
45 | | - unsigned long zones_size[MAX_NR_ZONES] = { 0, }; |
---|
| 44 | + unsigned long max_zone_pfn[MAX_NR_ZONES] = { 0, }; |
---|
46 | 45 | unsigned long size; |
---|
47 | 46 | |
---|
48 | | - empty_zero_page = alloc_bootmem_pages(PAGE_SIZE); |
---|
| 47 | + empty_zero_page = memblock_alloc(PAGE_SIZE, PAGE_SIZE); |
---|
| 48 | + if (!empty_zero_page) |
---|
| 49 | + panic("%s: Failed to allocate %lu bytes align=0x%lx\n", |
---|
| 50 | + __func__, PAGE_SIZE, PAGE_SIZE); |
---|
49 | 51 | |
---|
50 | 52 | address = PAGE_OFFSET; |
---|
51 | 53 | pg_dir = swapper_pg_dir; |
---|
.. | .. |
---|
55 | 57 | size = num_pages * sizeof(pte_t); |
---|
56 | 58 | size = (size + PAGE_SIZE) & ~(PAGE_SIZE-1); |
---|
57 | 59 | |
---|
58 | | - next_pgtable = (unsigned long)alloc_bootmem_pages(size); |
---|
| 60 | + next_pgtable = (unsigned long)memblock_alloc(size, PAGE_SIZE); |
---|
| 61 | + if (!next_pgtable) |
---|
| 62 | + panic("%s: Failed to allocate %lu bytes align=0x%lx\n", |
---|
| 63 | + __func__, size, PAGE_SIZE); |
---|
59 | 64 | bootmem_end = (next_pgtable + size + PAGE_SIZE) & PAGE_MASK; |
---|
60 | 65 | |
---|
61 | 66 | /* Map whole memory from PAGE_OFFSET (0x0E000000) */ |
---|
.. | .. |
---|
83 | 88 | current->mm = NULL; |
---|
84 | 89 | |
---|
85 | 90 | /* memory sizing is a hack stolen from motorola.c.. hope it works for us */ |
---|
86 | | - zones_size[ZONE_DMA] = ((unsigned long)high_memory - PAGE_OFFSET) >> PAGE_SHIFT; |
---|
| 91 | + max_zone_pfn[ZONE_DMA] = ((unsigned long)high_memory) >> PAGE_SHIFT; |
---|
87 | 92 | |
---|
88 | 93 | /* I really wish I knew why the following change made things better... -- Sam */ |
---|
89 | | -/* free_area_init(zones_size); */ |
---|
90 | | - free_area_init_node(0, zones_size, |
---|
91 | | - (__pa(PAGE_OFFSET) >> PAGE_SHIFT) + 1, NULL); |
---|
| 94 | + free_area_init(max_zone_pfn); |
---|
92 | 95 | |
---|
93 | 96 | |
---|
94 | 97 | } |
---|
95 | | - |
---|
96 | | - |
---|