summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2004-02-18 16:38:29 -0800
committerDavid S. Miller <davem@nuts.davemloft.net>2004-02-18 16:38:29 -0800
commit5d11ce4d95e26b5d71bf0e7932a4a0013738dee5 (patch)
tree69da1f2a10c5b6f444a6d4c4a7cce0893fbb65c5
parentce9209830680a4f351614fcc07ac6ea03d99012e (diff)
[PATCH] use noinline for rest_init()
gcc-3.4 incorretly inlines rest_init() into start_kernel(), causing things to crash when the .text.init section gets unloaded. Use noinline to prevent that.
-rw-r--r--init/main.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/init/main.c b/init/main.c
index eebe5302bbb2..8e9645e63546 100644
--- a/init/main.c
+++ b/init/main.c
@@ -378,9 +378,11 @@ static void __init smp_init(void)
* between the root thread and the init thread may cause start_kernel to
* be reaped by free_initmem before the root thread has proceeded to
* cpu_idle.
+ *
+ * gcc-3.4 accidentally inlines this function, so use noinline.
*/
-static void rest_init(void)
+static void noinline rest_init(void)
{
kernel_thread(init, NULL, CLONE_FS | CLONE_SIGHAND);
unlock_kernel();