aboutsummaryrefslogtreecommitdiffstats
path: root/init/main.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-01-07 18:35:47 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2009-01-07 18:35:47 -0500
commit67acd8b4b7a3f1b183ae358e1dfdb8a80e170736 (patch)
tree4418034f6e83f954337a17bc6a872fa5ae3c4b5e /init/main.c
parentb13d3720ecd29d5044334fdbbae3432f26802bae (diff)
parentad160d23198193135cb2bcc75222e0816b5838c0 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async
* git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async: async: don't do the initcall stuff post boot bootchart: improve output based on Dave Jones' feedback async: make the final inode deletion an asynchronous event fastboot: Make libata initialization even more async fastboot: make the libata port scan asynchronous fastboot: make scsi probes asynchronous async: Asynchronous function calls to speed up kernel boot
Diffstat (limited to 'init/main.c')
-rw-r--r--init/main.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/init/main.c b/init/main.c
index 05b313283311..844209453c02 100644
--- a/init/main.c
+++ b/init/main.c
@@ -62,6 +62,7 @@
62#include <linux/signal.h> 62#include <linux/signal.h>
63#include <linux/idr.h> 63#include <linux/idr.h>
64#include <linux/ftrace.h> 64#include <linux/ftrace.h>
65#include <linux/async.h>
65#include <trace/boot.h> 66#include <trace/boot.h>
66 67
67#include <asm/io.h> 68#include <asm/io.h>
@@ -685,7 +686,7 @@ asmlinkage void __init start_kernel(void)
685 rest_init(); 686 rest_init();
686} 687}
687 688
688static int initcall_debug; 689int initcall_debug;
689core_param(initcall_debug, initcall_debug, bool, 0644); 690core_param(initcall_debug, initcall_debug, bool, 0644);
690 691
691int do_one_initcall(initcall_t fn) 692int do_one_initcall(initcall_t fn)
@@ -786,6 +787,8 @@ static void run_init_process(char *init_filename)
786 */ 787 */
787static noinline int init_post(void) 788static noinline int init_post(void)
788{ 789{
790 /* need to finish all async __init code before freeing the memory */
791 async_synchronize_full();
789 free_initmem(); 792 free_initmem();
790 unlock_kernel(); 793 unlock_kernel();
791 mark_rodata_ro(); 794 mark_rodata_ro();