aboutsummaryrefslogtreecommitdiffstats
path: root/init/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'init/main.c')
-rw-r--r--init/main.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/init/main.c b/init/main.c
index febc511e078a..9c7fd4c9249f 100644
--- a/init/main.c
+++ b/init/main.c
@@ -92,17 +92,11 @@ static int kernel_init(void *);
92 92
93extern void init_IRQ(void); 93extern void init_IRQ(void);
94extern void fork_init(unsigned long); 94extern void fork_init(unsigned long);
95extern void mca_init(void);
96extern void sbus_init(void);
97extern void radix_tree_init(void); 95extern void radix_tree_init(void);
98#ifndef CONFIG_DEBUG_RODATA 96#ifndef CONFIG_DEBUG_RODATA
99static inline void mark_rodata_ro(void) { } 97static inline void mark_rodata_ro(void) { }
100#endif 98#endif
101 99
102#ifdef CONFIG_TC
103extern void tc_init(void);
104#endif
105
106/* 100/*
107 * Debug helper: via this flag we know that we are in 'early bootup code' 101 * Debug helper: via this flag we know that we are in 'early bootup code'
108 * where only the boot processor is running with IRQ disabled. This means 102 * where only the boot processor is running with IRQ disabled. This means
@@ -282,7 +276,7 @@ static int __init unknown_bootoption(char *param, char *val, const char *unused)
282 unsigned int i; 276 unsigned int i;
283 for (i = 0; envp_init[i]; i++) { 277 for (i = 0; envp_init[i]; i++) {
284 if (i == MAX_INIT_ENVS) { 278 if (i == MAX_INIT_ENVS) {
285 panic_later = "Too many boot env vars at `%s'"; 279 panic_later = "env";
286 panic_param = param; 280 panic_param = param;
287 } 281 }
288 if (!strncmp(param, envp_init[i], val - param)) 282 if (!strncmp(param, envp_init[i], val - param))
@@ -294,7 +288,7 @@ static int __init unknown_bootoption(char *param, char *val, const char *unused)
294 unsigned int i; 288 unsigned int i;
295 for (i = 0; argv_init[i]; i++) { 289 for (i = 0; argv_init[i]; i++) {
296 if (i == MAX_INIT_ARGS) { 290 if (i == MAX_INIT_ARGS) {
297 panic_later = "Too many boot init vars at `%s'"; 291 panic_later = "init";
298 panic_param = param; 292 panic_param = param;
299 } 293 }
300 } 294 }
@@ -355,9 +349,11 @@ static inline void smp_prepare_cpus(unsigned int maxcpus) { }
355 */ 349 */
356static void __init setup_command_line(char *command_line) 350static void __init setup_command_line(char *command_line)
357{ 351{
358 saved_command_line = alloc_bootmem(strlen (boot_command_line)+1); 352 saved_command_line =
359 initcall_command_line = alloc_bootmem(strlen (boot_command_line)+1); 353 memblock_virt_alloc(strlen(boot_command_line) + 1, 0);
360 static_command_line = alloc_bootmem(strlen (command_line)+1); 354 initcall_command_line =
355 memblock_virt_alloc(strlen(boot_command_line) + 1, 0);
356 static_command_line = memblock_virt_alloc(strlen(command_line) + 1, 0);
361 strcpy (saved_command_line, boot_command_line); 357 strcpy (saved_command_line, boot_command_line);
362 strcpy (static_command_line, command_line); 358 strcpy (static_command_line, command_line);
363} 359}
@@ -476,7 +472,7 @@ static void __init mm_init(void)
476 mem_init(); 472 mem_init();
477 kmem_cache_init(); 473 kmem_cache_init();
478 percpu_init_late(); 474 percpu_init_late();
479 pgtable_cache_init(); 475 pgtable_init();
480 vmalloc_init(); 476 vmalloc_init();
481} 477}
482 478
@@ -584,7 +580,8 @@ asmlinkage void __init start_kernel(void)
584 */ 580 */
585 console_init(); 581 console_init();
586 if (panic_later) 582 if (panic_later)
587 panic(panic_later, panic_param); 583 panic("Too many boot %s vars at `%s'", panic_later,
584 panic_param);
588 585
589 lockdep_info(); 586 lockdep_info();
590 587
@@ -615,6 +612,7 @@ asmlinkage void __init start_kernel(void)
615 calibrate_delay(); 612 calibrate_delay();
616 pidmap_init(); 613 pidmap_init();
617 anon_vma_init(); 614 anon_vma_init();
615 acpi_early_init();
618#ifdef CONFIG_X86 616#ifdef CONFIG_X86
619 if (efi_enabled(EFI_RUNTIME_SERVICES)) 617 if (efi_enabled(EFI_RUNTIME_SERVICES))
620 efi_enter_virtual_mode(); 618 efi_enter_virtual_mode();
@@ -641,7 +639,6 @@ asmlinkage void __init start_kernel(void)
641 639
642 check_bugs(); 640 check_bugs();
643 641
644 acpi_early_init(); /* before LAPIC and SMP init */
645 sfi_init_late(); 642 sfi_init_late();
646 643
647 if (efi_enabled(EFI_RUNTIME_SERVICES)) { 644 if (efi_enabled(EFI_RUNTIME_SERVICES)) {
@@ -815,7 +812,7 @@ void __init load_default_modules(void)
815static int run_init_process(const char *init_filename) 812static int run_init_process(const char *init_filename)
816{ 813{
817 argv_init[0] = init_filename; 814 argv_init[0] = init_filename;
818 return do_execve(init_filename, 815 return do_execve(getname_kernel(init_filename),
819 (const char __user *const __user *)argv_init, 816 (const char __user *const __user *)argv_init,
820 (const char __user *const __user *)envp_init); 817 (const char __user *const __user *)envp_init);
821} 818}