diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2009-01-12 17:41:01 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2009-01-12 17:41:01 +0000 |
commit | 0acce24b3c9caf80bad270dd1a4994f1486c266d (patch) | |
tree | 2614caadc3dc22f339035c770dd05ef8dc712f0e /meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0028-fastboot-sync-the-async-execution-before-late_initc.patch | |
parent | f51973f5afb4775252bdf26827ba44663e1dda2d (diff) | |
download | openembedded-core-0acce24b3c9caf80bad270dd1a4994f1486c266d.tar.gz openembedded-core-0acce24b3c9caf80bad270dd1a4994f1486c266d.tar.bz2 openembedded-core-0acce24b3c9caf80bad270dd1a4994f1486c266d.tar.xz openembedded-core-0acce24b3c9caf80bad270dd1a4994f1486c266d.zip |
Drop linux-moblin obsolete kernels
Diffstat (limited to 'meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0028-fastboot-sync-the-async-execution-before-late_initc.patch')
-rw-r--r-- | meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0028-fastboot-sync-the-async-execution-before-late_initc.patch | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0028-fastboot-sync-the-async-execution-before-late_initc.patch b/meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0028-fastboot-sync-the-async-execution-before-late_initc.patch deleted file mode 100644 index 0700fb318..000000000 --- a/meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0028-fastboot-sync-the-async-execution-before-late_initc.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 660625fb93f2fc0e633da9cb71d13d895b385f64 Mon Sep 17 00:00:00 2001 -From: Arjan van de Ven <arjan@linux.intel.com> -Date: Sun, 20 Jul 2008 09:00:41 -0700 -Subject: [PATCH] fastboot: sync the async execution before late_initcall and move level 6s (sync) first - -Rene Herman points out several cases where it's basically needed to have -all level 6/6a/6s calls done before the level 7 (late_initcall) code -runs. This patch adds a sync point in the transition from the 6's to the -7's. - -Second, this patch makes sure that level 6s (sync) happens before the -async code starts, and puts a user in driver/pci in this category that -needs to happen before device init. - -Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> -Signed-off-by: Ingo Molnar <mingo@elte.hu> ---- - drivers/pci/pci.c | 2 +- - include/asm-generic/vmlinux.lds.h | 3 ++- - init/main.c | 14 +++++++++++++- - 3 files changed, 16 insertions(+), 3 deletions(-) - -diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c -index 44a46c9..d75295d 100644 ---- a/drivers/pci/pci.c -+++ b/drivers/pci/pci.c -@@ -1889,7 +1889,7 @@ static int __devinit pci_setup(char *str) - } - early_param("pci", pci_setup); - --device_initcall(pci_init); -+device_initcall_sync(pci_init); - - EXPORT_SYMBOL(pci_reenable_device); - EXPORT_SYMBOL(pci_enable_device_io); -diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h -index 39c1afc..020c641 100644 ---- a/include/asm-generic/vmlinux.lds.h -+++ b/include/asm-generic/vmlinux.lds.h -@@ -372,11 +372,12 @@ - *(.initcall5.init) \ - *(.initcall5s.init) \ - *(.initcallrootfs.init) \ -+ *(.initcall6s.init) \ - __async_initcall_start = .; \ - *(.initcall6a.init) \ - __async_initcall_end = .; \ - *(.initcall6.init) \ -- *(.initcall6s.init) \ -+ __device_initcall_end = .; \ - *(.initcall7.init) \ - *(.initcall7s.init) - -diff --git a/init/main.c b/init/main.c -index 9e2aee8..6be1756 100644 ---- a/init/main.c -+++ b/init/main.c -@@ -739,6 +739,7 @@ static void __init do_one_initcall(initcall_t fn) - - extern initcall_t __initcall_start[], __initcall_end[]; - extern initcall_t __async_initcall_start[], __async_initcall_end[]; -+extern initcall_t __device_initcall_end[]; - - static void __init do_async_initcalls(struct work_struct *dummy) - { -@@ -762,7 +763,13 @@ static void __init do_initcalls(void) - { - initcall_t *call; - static DECLARE_WORK(async_work, do_async_initcalls); -- int phase = 0; /* 0 = levels 0 - 6, 1 = level 6a, 2 = after level 6a */ -+ /* -+ * 0 = levels 0 - 6, -+ * 1 = level 6a, -+ * 2 = after level 6a, -+ * 3 = after level 6 -+ */ -+ int phase = 0; - - async_init_wq = create_singlethread_workqueue("kasyncinit"); - -@@ -773,6 +780,11 @@ static void __init do_initcalls(void) - } - if (phase == 1 && call >= __async_initcall_end) - phase = 2; -+ if (phase == 2 && call >= __device_initcall_end) { -+ phase = 3; -+ /* make sure all async work is done before level 7 */ -+ flush_workqueue(async_init_wq); -+ } - if (phase != 1) - do_one_initcall(*call); - } --- -1.5.4.3 - |