diff options
Diffstat (limited to 'init/main.c')
-rw-r--r-- | init/main.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/init/main.c b/init/main.c index e81cf427d9c7..27f6bf6108e9 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -391,23 +391,17 @@ EXPORT_SYMBOL(__per_cpu_offset); | |||
391 | 391 | ||
392 | static void __init setup_per_cpu_areas(void) | 392 | static void __init setup_per_cpu_areas(void) |
393 | { | 393 | { |
394 | unsigned long size, i, old_size; | 394 | unsigned long size, i; |
395 | char *ptr; | 395 | char *ptr; |
396 | unsigned long nr_possible_cpus = num_possible_cpus(); | 396 | unsigned long nr_possible_cpus = num_possible_cpus(); |
397 | unsigned long align = 1; | ||
398 | unsigned da_size; | ||
399 | 397 | ||
400 | /* Copy section for each CPU (we discard the original) */ | 398 | /* Copy section for each CPU (we discard the original) */ |
401 | old_size = PERCPU_ENOUGH_ROOM; | 399 | size = ALIGN(PERCPU_ENOUGH_ROOM, PAGE_SIZE); |
402 | da_size = per_cpu_dyn_array_size(&align); | ||
403 | align = max_t(unsigned long, PAGE_SIZE, align); | ||
404 | size = ALIGN(old_size + da_size, align); | ||
405 | ptr = alloc_bootmem_pages(size * nr_possible_cpus); | 400 | ptr = alloc_bootmem_pages(size * nr_possible_cpus); |
406 | 401 | ||
407 | for_each_possible_cpu(i) { | 402 | for_each_possible_cpu(i) { |
408 | __per_cpu_offset[i] = ptr - __per_cpu_start; | 403 | __per_cpu_offset[i] = ptr - __per_cpu_start; |
409 | memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start); | 404 | memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start); |
410 | per_cpu_alloc_dyn_array(i, ptr + old_size); | ||
411 | ptr += size; | 405 | ptr += size; |
412 | } | 406 | } |
413 | } | 407 | } |
@@ -573,7 +567,6 @@ asmlinkage void __init start_kernel(void) | |||
573 | printk(KERN_NOTICE); | 567 | printk(KERN_NOTICE); |
574 | printk(linux_banner); | 568 | printk(linux_banner); |
575 | setup_arch(&command_line); | 569 | setup_arch(&command_line); |
576 | pre_alloc_dyn_array(); | ||
577 | mm_init_owner(&init_mm, &init_task); | 570 | mm_init_owner(&init_mm, &init_task); |
578 | setup_command_line(command_line); | 571 | setup_command_line(command_line); |
579 | unwind_setup(); | 572 | unwind_setup(); |