aboutsummaryrefslogtreecommitdiffstats
path: root/init/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'init/main.c')
-rw-r--r--init/main.c11
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
392static void __init setup_per_cpu_areas(void) 392static 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();