diff options
Diffstat (limited to 'arch/mips/kernel/setup.c')
| -rw-r--r-- | arch/mips/kernel/setup.c | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index a06a27d6cfcd..7f6ddcb5d485 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c | |||
| @@ -269,7 +269,7 @@ static void __init bootmem_init(void) | |||
| 269 | 269 | ||
| 270 | static void __init bootmem_init(void) | 270 | static void __init bootmem_init(void) |
| 271 | { | 271 | { |
| 272 | unsigned long reserved_end; | 272 | unsigned long init_begin, reserved_end; |
| 273 | unsigned long mapstart = ~0UL; | 273 | unsigned long mapstart = ~0UL; |
| 274 | unsigned long bootmap_size; | 274 | unsigned long bootmap_size; |
| 275 | int i; | 275 | int i; |
| @@ -342,6 +342,35 @@ static void __init bootmem_init(void) | |||
| 342 | */ | 342 | */ |
| 343 | bootmap_size = init_bootmem_node(NODE_DATA(0), mapstart, | 343 | bootmap_size = init_bootmem_node(NODE_DATA(0), mapstart, |
| 344 | min_low_pfn, max_low_pfn); | 344 | min_low_pfn, max_low_pfn); |
| 345 | |||
| 346 | |||
| 347 | init_begin = PFN_UP(__pa_symbol(&__init_begin)); | ||
| 348 | for (i = 0; i < boot_mem_map.nr_map; i++) { | ||
| 349 | unsigned long start, end; | ||
| 350 | |||
| 351 | start = PFN_UP(boot_mem_map.map[i].addr); | ||
| 352 | end = PFN_DOWN(boot_mem_map.map[i].addr | ||
| 353 | + boot_mem_map.map[i].size); | ||
| 354 | |||
| 355 | if (start <= init_begin) | ||
| 356 | start = init_begin; | ||
| 357 | if (start >= end) | ||
| 358 | continue; | ||
| 359 | |||
| 360 | #ifndef CONFIG_HIGHMEM | ||
| 361 | if (end > max_low_pfn) | ||
| 362 | end = max_low_pfn; | ||
| 363 | |||
| 364 | /* | ||
| 365 | * ... finally, is the area going away? | ||
| 366 | */ | ||
| 367 | if (end <= start) | ||
| 368 | continue; | ||
| 369 | #endif | ||
| 370 | |||
| 371 | add_active_range(0, start, end); | ||
| 372 | } | ||
| 373 | |||
| 345 | /* | 374 | /* |
| 346 | * Register fully available low RAM pages with the bootmem allocator. | 375 | * Register fully available low RAM pages with the bootmem allocator. |
| 347 | */ | 376 | */ |
