blob: faf96220919ba0c6320a94dff74f585bf475a9ce (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
From 50b6962016b824dfac254b8f36fc6cac301c8a8d Mon Sep 17 00:00:00 2001
From: Arjan van de Ven <arjan@linux.intel.com>
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 <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
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
|