git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
nfsd4: remove some dprintk's
[safe/jmp/linux-2.6]
/
init
/
main.c
diff --git
a/init/main.c
b/init/main.c
index
798fe45
..
83697e1
100644
(file)
--- a/
init/main.c
+++ b/
init/main.c
@@
-50,7
+50,6
@@
#include <linux/rmap.h>
#include <linux/mempolicy.h>
#include <linux/key.h>
#include <linux/rmap.h>
#include <linux/mempolicy.h>
#include <linux/key.h>
-#include <linux/unwind.h>
#include <linux/buffer_head.h>
#include <linux/page_cgroup.h>
#include <linux/debug_locks.h>
#include <linux/buffer_head.h>
#include <linux/page_cgroup.h>
#include <linux/debug_locks.h>
@@
-63,6
+62,7
@@
#include <linux/signal.h>
#include <linux/idr.h>
#include <linux/ftrace.h>
#include <linux/signal.h>
#include <linux/idr.h>
#include <linux/ftrace.h>
+#include <linux/async.h>
#include <trace/boot.h>
#include <asm/io.h>
#include <trace/boot.h>
#include <asm/io.h>
@@
-97,7
+97,7
@@
static inline void mark_rodata_ro(void) { }
extern void tc_init(void);
#endif
extern void tc_init(void);
#endif
-enum system_states system_state;
+enum system_states system_state
__read_mostly
;
EXPORT_SYMBOL(system_state);
/*
EXPORT_SYMBOL(system_state);
/*
@@
-108,7
+108,7
@@
EXPORT_SYMBOL(system_state);
extern void time_init(void);
/* Default late time init is NULL. archs can override this later. */
extern void time_init(void);
/* Default late time init is NULL. archs can override this later. */
-void (*late_time_init)(void);
+void (*
__initdata
late_time_init)(void);
extern void softirq_init(void);
/* Untouched command line saved by arch-specific code. */
extern void softirq_init(void);
/* Untouched command line saved by arch-specific code. */
@@
-447,7
+447,7
@@
static void __init setup_command_line(char *command_line)
* gcc-3.4 accidentally inlines this function, so use noinline.
*/
* gcc-3.4 accidentally inlines this function, so use noinline.
*/
-static
void noinline
__init_refok rest_init(void)
+static
noinline void
__init_refok rest_init(void)
__releases(kernel_lock)
{
int pid;
__releases(kernel_lock)
{
int pid;
@@
-463,6
+463,7
@@
static void noinline __init_refok rest_init(void)
* at least once to get things moving:
*/
init_idle_bootup_task(current);
* at least once to get things moving:
*/
init_idle_bootup_task(current);
+ rcu_scheduler_starting();
preempt_enable_no_resched();
schedule();
preempt_disable();
preempt_enable_no_resched();
schedule();
preempt_disable();
@@
-537,7
+538,6
@@
asmlinkage void __init start_kernel(void)
* Need to run as early as possible, to initialize the
* lockdep hash:
*/
* Need to run as early as possible, to initialize the
* lockdep hash:
*/
- unwind_init();
lockdep_init();
debug_objects_early_init();
cgroup_init_early();
lockdep_init();
debug_objects_early_init();
cgroup_init_early();
@@
-559,7
+559,6
@@
asmlinkage void __init start_kernel(void)
setup_arch(&command_line);
mm_init_owner(&init_mm, &init_task);
setup_command_line(command_line);
setup_arch(&command_line);
mm_init_owner(&init_mm, &init_task);
setup_command_line(command_line);
- unwind_setup();
setup_per_cpu_areas();
setup_nr_cpu_ids();
smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
setup_per_cpu_areas();
setup_nr_cpu_ids();
smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
@@
-688,7
+687,7
@@
asmlinkage void __init start_kernel(void)
rest_init();
}
rest_init();
}
-
static
int initcall_debug;
+int initcall_debug;
core_param(initcall_debug, initcall_debug, bool, 0644);
int do_one_initcall(initcall_t fn)
core_param(initcall_debug, initcall_debug, bool, 0644);
int do_one_initcall(initcall_t fn)
@@
-787,8
+786,10
@@
static void run_init_process(char *init_filename)
/* 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
*/
/* 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
int noinline
init_post(void)
+static
noinline int
init_post(void)
{
{
+ /* need to finish all async __init code before freeing the memory */
+ async_synchronize_full();
free_initmem();
unlock_kernel();
mark_rodata_ro();
free_initmem();
unlock_kernel();
mark_rodata_ro();