diff options
Diffstat (limited to 'arch/microblaze/mm/init.c')
| -rw-r--r-- | arch/microblaze/mm/init.c | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c index 65eb00419d19..213f2d671669 100644 --- a/arch/microblaze/mm/init.c +++ b/arch/microblaze/mm/init.c | |||
| @@ -32,8 +32,6 @@ unsigned int __page_offset; | |||
| 32 | EXPORT_SYMBOL(__page_offset); | 32 | EXPORT_SYMBOL(__page_offset); |
| 33 | 33 | ||
| 34 | #else | 34 | #else |
| 35 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); | ||
| 36 | |||
| 37 | static int init_bootmem_done; | 35 | static int init_bootmem_done; |
| 38 | #endif /* CONFIG_MMU */ | 36 | #endif /* CONFIG_MMU */ |
| 39 | 37 | ||
| @@ -70,16 +68,16 @@ static void __init paging_init(void) | |||
| 70 | 68 | ||
| 71 | void __init setup_memory(void) | 69 | void __init setup_memory(void) |
| 72 | { | 70 | { |
| 73 | int i; | ||
| 74 | unsigned long map_size; | 71 | unsigned long map_size; |
| 72 | struct memblock_region *reg; | ||
| 73 | |||
| 75 | #ifndef CONFIG_MMU | 74 | #ifndef CONFIG_MMU |
| 76 | u32 kernel_align_start, kernel_align_size; | 75 | u32 kernel_align_start, kernel_align_size; |
| 77 | 76 | ||
| 78 | /* Find main memory where is the kernel */ | 77 | /* Find main memory where is the kernel */ |
| 79 | for (i = 0; i < memblock.memory.cnt; i++) { | 78 | for_each_memblock(memory, reg) { |
| 80 | memory_start = (u32) memblock.memory.region[i].base; | 79 | memory_start = (u32)reg->base; |
| 81 | memory_end = (u32) memblock.memory.region[i].base | 80 | memory_end = (u32) reg->base + reg->size; |
| 82 | + (u32) memblock.memory.region[i].size; | ||
| 83 | if ((memory_start <= (u32)_text) && | 81 | if ((memory_start <= (u32)_text) && |
| 84 | ((u32)_text <= memory_end)) { | 82 | ((u32)_text <= memory_end)) { |
| 85 | memory_size = memory_end - memory_start; | 83 | memory_size = memory_end - memory_start; |
| @@ -142,12 +140,10 @@ void __init setup_memory(void) | |||
| 142 | free_bootmem(memory_start, memory_size); | 140 | free_bootmem(memory_start, memory_size); |
| 143 | 141 | ||
| 144 | /* reserve allocate blocks */ | 142 | /* reserve allocate blocks */ |
| 145 | for (i = 0; i < memblock.reserved.cnt; i++) { | 143 | for_each_memblock(reserved, reg) { |
| 146 | pr_debug("reserved %d - 0x%08x-0x%08x\n", i, | 144 | pr_debug("reserved - 0x%08x-0x%08x\n", |
| 147 | (u32) memblock.reserved.region[i].base, | 145 | (u32) reg->base, (u32) reg->size); |
| 148 | (u32) memblock_size_bytes(&memblock.reserved, i)); | 146 | reserve_bootmem(reg->base, reg->size, BOOTMEM_DEFAULT); |
| 149 | reserve_bootmem(memblock.reserved.region[i].base, | ||
| 150 | memblock_size_bytes(&memblock.reserved, i) - 1, BOOTMEM_DEFAULT); | ||
| 151 | } | 147 | } |
| 152 | #ifdef CONFIG_MMU | 148 | #ifdef CONFIG_MMU |
| 153 | init_bootmem_done = 1; | 149 | init_bootmem_done = 1; |
| @@ -230,7 +226,7 @@ static void mm_cmdline_setup(void) | |||
| 230 | if (maxmem && memory_size > maxmem) { | 226 | if (maxmem && memory_size > maxmem) { |
| 231 | memory_size = maxmem; | 227 | memory_size = maxmem; |
| 232 | memory_end = memory_start + memory_size; | 228 | memory_end = memory_start + memory_size; |
| 233 | memblock.memory.region[0].size = memory_size; | 229 | memblock.memory.regions[0].size = memory_size; |
| 234 | } | 230 | } |
| 235 | } | 231 | } |
| 236 | } | 232 | } |
| @@ -273,14 +269,14 @@ asmlinkage void __init mmu_init(void) | |||
| 273 | machine_restart(NULL); | 269 | machine_restart(NULL); |
| 274 | } | 270 | } |
| 275 | 271 | ||
| 276 | if ((u32) memblock.memory.region[0].size < 0x1000000) { | 272 | if ((u32) memblock.memory.regions[0].size < 0x1000000) { |
| 277 | printk(KERN_EMERG "Memory must be greater than 16MB\n"); | 273 | printk(KERN_EMERG "Memory must be greater than 16MB\n"); |
| 278 | machine_restart(NULL); | 274 | machine_restart(NULL); |
| 279 | } | 275 | } |
| 280 | /* Find main memory where the kernel is */ | 276 | /* Find main memory where the kernel is */ |
| 281 | memory_start = (u32) memblock.memory.region[0].base; | 277 | memory_start = (u32) memblock.memory.regions[0].base; |
| 282 | memory_end = (u32) memblock.memory.region[0].base + | 278 | memory_end = (u32) memblock.memory.regions[0].base + |
| 283 | (u32) memblock.memory.region[0].size; | 279 | (u32) memblock.memory.regions[0].size; |
| 284 | memory_size = memory_end - memory_start; | 280 | memory_size = memory_end - memory_start; |
| 285 | 281 | ||
| 286 | mm_cmdline_setup(); /* FIXME parse args from command line - not used */ | 282 | mm_cmdline_setup(); /* FIXME parse args from command line - not used */ |
