aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/start_kernel.h2
-rw-r--r--init/main.c9
2 files changed, 9 insertions, 2 deletions
diff --git a/include/linux/start_kernel.h b/include/linux/start_kernel.h
index 4b268d86a784..8b369a41c03c 100644
--- a/include/linux/start_kernel.h
+++ b/include/linux/start_kernel.h
@@ -9,5 +9,7 @@
9 up something else. */ 9 up something else. */
10 10
11extern asmlinkage void __init start_kernel(void); 11extern asmlinkage void __init start_kernel(void);
12extern void __init arch_call_rest_init(void);
13extern void __ref rest_init(void);
12 14
13#endif /* _LINUX_START_KERNEL_H */ 15#endif /* _LINUX_START_KERNEL_H */
diff --git a/init/main.c b/init/main.c
index 18f8f0140fa0..78b714a5fa94 100644
--- a/init/main.c
+++ b/init/main.c
@@ -394,7 +394,7 @@ static void __init setup_command_line(char *command_line)
394 394
395static __initdata DECLARE_COMPLETION(kthreadd_done); 395static __initdata DECLARE_COMPLETION(kthreadd_done);
396 396
397static noinline void __ref rest_init(void) 397noinline void __ref rest_init(void)
398{ 398{
399 struct task_struct *tsk; 399 struct task_struct *tsk;
400 int pid; 400 int pid;
@@ -528,6 +528,11 @@ static void __init mm_init(void)
528 pti_init(); 528 pti_init();
529} 529}
530 530
531void __init __weak arch_call_rest_init(void)
532{
533 rest_init();
534}
535
531asmlinkage __visible void __init start_kernel(void) 536asmlinkage __visible void __init start_kernel(void)
532{ 537{
533 char *command_line; 538 char *command_line;
@@ -736,7 +741,7 @@ asmlinkage __visible void __init start_kernel(void)
736 } 741 }
737 742
738 /* Do the rest non-__init'ed, we're now alive */ 743 /* Do the rest non-__init'ed, we're now alive */
739 rest_init(); 744 arch_call_rest_init();
740} 745}
741 746
742/* Call all constructor functions linked into the kernel. */ 747/* Call all constructor functions linked into the kernel. */