| .. | .. |
|---|
| 30 | 30 | #include <linux/init.h> |
|---|
| 31 | 31 | #include <linux/highmem.h> |
|---|
| 32 | 32 | #include <linux/pagemap.h> |
|---|
| 33 | | -#include <linux/bootmem.h> |
|---|
| 33 | +#include <linux/memblock.h> |
|---|
| 34 | 34 | #include <linux/gfp.h> |
|---|
| 35 | 35 | |
|---|
| 36 | 36 | #include <asm/setup.h> |
|---|
| 37 | 37 | #include <asm/segment.h> |
|---|
| 38 | 38 | #include <asm/page.h> |
|---|
| 39 | | -#include <asm/pgtable.h> |
|---|
| 40 | 39 | #include <asm/sections.h> |
|---|
| 41 | 40 | |
|---|
| 42 | 41 | /* |
|---|
| .. | .. |
|---|
| 67 | 66 | * Initialize the bad page table and bad page to point |
|---|
| 68 | 67 | * to a couple of allocated pages. |
|---|
| 69 | 68 | */ |
|---|
| 70 | | - empty_zero_page = (unsigned long)alloc_bootmem_pages(PAGE_SIZE); |
|---|
| 71 | | - memset((void *)empty_zero_page, 0, PAGE_SIZE); |
|---|
| 69 | + empty_zero_page = (unsigned long)memblock_alloc(PAGE_SIZE, PAGE_SIZE); |
|---|
| 70 | + if (!empty_zero_page) |
|---|
| 71 | + panic("%s: Failed to allocate %lu bytes align=0x%lx\n", |
|---|
| 72 | + __func__, PAGE_SIZE, PAGE_SIZE); |
|---|
| 72 | 73 | |
|---|
| 73 | 74 | /* |
|---|
| 74 | 75 | * Set up SFC/DFC registers (user data space). |
|---|
| .. | .. |
|---|
| 81 | 82 | start_mem, end_mem); |
|---|
| 82 | 83 | |
|---|
| 83 | 84 | { |
|---|
| 84 | | - unsigned long zones_size[MAX_NR_ZONES] = {0, }; |
|---|
| 85 | + unsigned long max_zone_pfn[MAX_NR_ZONES] = {0, }; |
|---|
| 85 | 86 | |
|---|
| 86 | | - zones_size[ZONE_NORMAL] = (end_mem - PAGE_OFFSET) >> PAGE_SHIFT; |
|---|
| 87 | | - free_area_init(zones_size); |
|---|
| 87 | + max_zone_pfn[ZONE_NORMAL] = end_mem >> PAGE_SHIFT; |
|---|
| 88 | + free_area_init(max_zone_pfn); |
|---|
| 88 | 89 | } |
|---|
| 89 | 90 | } |
|---|
| 90 | 91 | |
|---|
| .. | .. |
|---|
| 96 | 97 | max_mapnr = MAP_NR(high_memory); |
|---|
| 97 | 98 | |
|---|
| 98 | 99 | /* this will put all low memory onto the freelists */ |
|---|
| 99 | | - free_all_bootmem(); |
|---|
| 100 | + memblock_free_all(); |
|---|
| 100 | 101 | |
|---|
| 101 | 102 | mem_init_print_info(NULL); |
|---|
| 102 | | -} |
|---|
| 103 | | - |
|---|
| 104 | | - |
|---|
| 105 | | -#ifdef CONFIG_BLK_DEV_INITRD |
|---|
| 106 | | -void free_initrd_mem(unsigned long start, unsigned long end) |
|---|
| 107 | | -{ |
|---|
| 108 | | - free_reserved_area((void *)start, (void *)end, -1, "initrd"); |
|---|
| 109 | | -} |
|---|
| 110 | | -#endif |
|---|
| 111 | | - |
|---|
| 112 | | -void |
|---|
| 113 | | -free_initmem(void) |
|---|
| 114 | | -{ |
|---|
| 115 | | - free_initmem_default(-1); |
|---|
| 116 | 103 | } |
|---|