diff options
Diffstat (limited to 'arch/microblaze/mm')
-rw-r--r-- | arch/microblaze/mm/init.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c index afd6494fbbc6..32a702b621c8 100644 --- a/arch/microblaze/mm/init.c +++ b/arch/microblaze/mm/init.c | |||
@@ -70,16 +70,16 @@ static void __init paging_init(void) | |||
70 | 70 | ||
71 | void __init setup_memory(void) | 71 | void __init setup_memory(void) |
72 | { | 72 | { |
73 | int i; | ||
74 | unsigned long map_size; | 73 | unsigned long map_size; |
74 | struct memblock_region *reg; | ||
75 | |||
75 | #ifndef CONFIG_MMU | 76 | #ifndef CONFIG_MMU |
76 | u32 kernel_align_start, kernel_align_size; | 77 | u32 kernel_align_start, kernel_align_size; |
77 | 78 | ||
78 | /* Find main memory where is the kernel */ | 79 | /* Find main memory where is the kernel */ |
79 | for (i = 0; i < memblock.memory.cnt; i++) { | 80 | for_each_memblock(memory, reg) { |
80 | memory_start = (u32) memblock.memory.regions[i].base; | 81 | memory_start = (u32)reg->base; |
81 | memory_end = (u32) memblock.memory.regions[i].base | 82 | memory_end = (u32) reg->base + reg->size; |
82 | + (u32) memblock.memory.region[i].size; | ||
83 | if ((memory_start <= (u32)_text) && | 83 | if ((memory_start <= (u32)_text) && |
84 | ((u32)_text <= memory_end)) { | 84 | ((u32)_text <= memory_end)) { |
85 | memory_size = memory_end - memory_start; | 85 | memory_size = memory_end - memory_start; |
@@ -147,12 +147,10 @@ void __init setup_memory(void) | |||
147 | free_bootmem(memory_start, memory_size); | 147 | free_bootmem(memory_start, memory_size); |
148 | 148 | ||
149 | /* reserve allocate blocks */ | 149 | /* reserve allocate blocks */ |
150 | for (i = 0; i < memblock.reserved.cnt; i++) { | 150 | for_each_memblock(reserved, reg) { |
151 | pr_debug("reserved %d - 0x%08x-0x%08x\n", i, | 151 | pr_debug("reserved - 0x%08x-0x%08x\n", |
152 | (u32) memblock.reserved.region[i].base, | 152 | (u32) reg->base, (u32) reg->size); |
153 | (u32) memblock_size_bytes(&memblock.reserved, i)); | 153 | reserve_bootmem(reg->base, reg->size, BOOTMEM_DEFAULT); |
154 | reserve_bootmem(memblock.reserved.region[i].base, | ||
155 | memblock_size_bytes(&memblock.reserved, i) - 1, BOOTMEM_DEFAULT); | ||
156 | } | 154 | } |
157 | #ifdef CONFIG_MMU | 155 | #ifdef CONFIG_MMU |
158 | init_bootmem_done = 1; | 156 | init_bootmem_done = 1; |