diff options
Diffstat (limited to 'init/main.c')
| -rw-r--r-- | init/main.c | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/init/main.c b/init/main.c index c6023edc03f3..97d88c50366b 100644 --- a/init/main.c +++ b/init/main.c @@ -30,6 +30,8 @@ #include <linux/kernel_stat.h> #include <linux/security.h> #include <linux/workqueue.h> +#include <linux/profile.h> +#include <linux/rcupdate.h> #include <asm/io.h> #include <asm/bugs.h> @@ -52,7 +54,6 @@ #error Sorry, your GCC is too old. It builds incorrect kernels. #endif -extern char _stext, _etext; extern char *linux_banner; static int init(void *); @@ -130,13 +131,6 @@ __setup("maxcpus=", maxcpus); static char * argv_init[MAX_INIT_ARGS+2] = { "init", NULL, }; char * envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, }; -static int __init profile_setup(char *str) -{ - int par; - if (get_option(&str,&par)) prof_shift = par; - return 1; -} - __setup("profile=", profile_setup); static int __init checksetup(char *line) @@ -397,6 +391,7 @@ asmlinkage void __init start_kernel(void) printk("Kernel command line: %s\n", saved_command_line); parse_options(command_line); trap_init(); + rcu_init(); init_IRQ(); sched_init(); softirq_init(); @@ -411,16 +406,7 @@ asmlinkage void __init start_kernel(void) #ifdef CONFIG_MODULES init_modules(); #endif - if (prof_shift) { - unsigned int size; - /* only text is profiled */ - prof_len = (unsigned long) &_etext - (unsigned long) &_stext; - prof_len >>= prof_shift; - - size = prof_len * sizeof(unsigned int) + PAGE_SIZE-1; - prof_buffer = (unsigned int *) alloc_bootmem(size); - } - + profile_init(); kmem_cache_init(); local_irq_enable(); calibrate_delay(); |
