From 9baba68fc0165772f54330bd2a723a583b305f40 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Wed, 10 Oct 2012 19:57:26 -0400 Subject: [PATCH] --- yaml --- r: 333919 b: refs/heads/master c: d6b2123802d2b7eee8c62cd0ebd73e8636cbb068 h: refs/heads/master i: 333917: 9475054a352029a19bde69076b1f6b63aa2280c7 333915: 5ad1352aef287118fd45576d5ee2a44da5d805c7 333911: fe9e7053f796d1e1fe68bb066329d355cb77c70f 333903: cdf42c12dfc0c35aededc75215e144e068b27798 333887: 0a959c9f2467ca5d925bbf2e5849353f603eb267 v: v3 --- [refs] | 2 +- trunk/init/main.c | 13 +++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 3a3b50a9f7c5..21e7701e94ee 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ecf89e581acce83e8cd2a5530858be22c64441f7 +refs/heads/master: d6b2123802d2b7eee8c62cd0ebd73e8636cbb068 diff --git a/trunk/init/main.c b/trunk/init/main.c index b28673087ac0..a490ffecb7b9 100644 --- a/trunk/init/main.c +++ b/trunk/init/main.c @@ -794,11 +794,11 @@ static void run_init_process(const char *init_filename) kernel_execve(init_filename, argv_init, envp_init); } -/* This is a non __init function. Force it to be noinline otherwise gcc - * makes it inline to init() and it becomes part of init.text section - */ -static noinline int init_post(void) +static void __init kernel_init_freeable(void); + +static int __ref kernel_init(void *unused) { + kernel_init_freeable(); /* need to finish all async __init code before freeing the memory */ async_synchronize_full(); free_initmem(); @@ -835,7 +835,7 @@ static noinline int init_post(void) "See Linux Documentation/init.txt for guidance."); } -static int __init kernel_init(void * unused) +static void __init kernel_init_freeable(void) { /* * Wait until kthreadd is all set-up. @@ -890,7 +890,4 @@ static int __init kernel_init(void * unused) * we're essentially up and running. Get rid of the * initmem segments and start the user-mode stuff.. */ - - init_post(); - return 0; }