summaryrefslogtreecommitdiff
path: root/meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0029-fastboot-make-fastboot-a-config-option.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0029-fastboot-make-fastboot-a-config-option.patch')
-rw-r--r--meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0029-fastboot-make-fastboot-a-config-option.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0029-fastboot-make-fastboot-a-config-option.patch b/meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0029-fastboot-make-fastboot-a-config-option.patch
new file mode 100644
index 000000000..faf962209
--- /dev/null
+++ b/meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0029-fastboot-make-fastboot-a-config-option.patch
@@ -0,0 +1,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
+