From 50b6962016b824dfac254b8f36fc6cac301c8a8d Mon Sep 17 00:00:00 2001 From: Arjan van de Ven Date: Sun, 20 Jul 2008 10:20:49 -0700 Subject: [PATCH] fastboot: make fastboot a config option to mitigate the risks of async bootup, make fastboot a configuration option... Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar --- init/Kconfig | 11 +++++++++++ init/main.c | 4 ++++ 2 files changed, 15 insertions(+), 0 deletions(-) diff --git a/init/Kconfig b/init/Kconfig index 6199d11..7545c8b 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -524,6 +524,17 @@ config CC_OPTIMIZE_FOR_SIZE If unsure, say N. +config FASTBOOT + bool "Fast boot support" + help + The fastboot option will cause the kernel to try to optimize + for faster boot. + + This includes doing some of the device initialization asynchronous + as well as opportunistically trying to mount the root fs early. + + If unsure, say N. + config SYSCTL bool diff --git a/init/main.c b/init/main.c index 6be1756..bb97add 100644 --- a/init/main.c +++ b/init/main.c @@ -776,7 +776,11 @@ static void __init do_initcalls(void) for (call = __initcall_start; call < __initcall_end; call++) { if (phase == 0 && call >= __async_initcall_start) { phase = 1; +#ifdef CONFIG_FASTBOOT queue_work(async_init_wq, &async_work); +#else + do_async_initcalls(NULL); +#endif } if (phase == 1 && call >= __async_initcall_end) phase = 2; -- 1.5.4.3