diff options
Diffstat (limited to 'init')
| -rw-r--r-- | init/main.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/init/main.c b/init/main.c index c75dcd6eef09..18098153c331 100644 --- a/init/main.c +++ b/init/main.c | |||
| @@ -149,6 +149,20 @@ static int __init nosmp(char *str) | |||
| 149 | 149 | ||
| 150 | early_param("nosmp", nosmp); | 150 | early_param("nosmp", nosmp); |
| 151 | 151 | ||
| 152 | /* this is hard limit */ | ||
| 153 | static int __init nrcpus(char *str) | ||
| 154 | { | ||
| 155 | int nr_cpus; | ||
| 156 | |||
| 157 | get_option(&str, &nr_cpus); | ||
| 158 | if (nr_cpus > 0 && nr_cpus < nr_cpu_ids) | ||
| 159 | nr_cpu_ids = nr_cpus; | ||
| 160 | |||
| 161 | return 0; | ||
| 162 | } | ||
| 163 | |||
| 164 | early_param("nr_cpus", nrcpus); | ||
| 165 | |||
| 152 | static int __init maxcpus(char *str) | 166 | static int __init maxcpus(char *str) |
| 153 | { | 167 | { |
| 154 | get_option(&str, &setup_max_cpus); | 168 | get_option(&str, &setup_max_cpus); |
| @@ -586,6 +600,7 @@ asmlinkage void __init start_kernel(void) | |||
| 586 | local_irq_disable(); | 600 | local_irq_disable(); |
| 587 | } | 601 | } |
| 588 | rcu_init(); | 602 | rcu_init(); |
| 603 | radix_tree_init(); | ||
| 589 | /* init some links before init_ISA_irqs() */ | 604 | /* init some links before init_ISA_irqs() */ |
| 590 | early_irq_init(); | 605 | early_irq_init(); |
| 591 | init_IRQ(); | 606 | init_IRQ(); |
| @@ -659,7 +674,6 @@ asmlinkage void __init start_kernel(void) | |||
| 659 | proc_caches_init(); | 674 | proc_caches_init(); |
| 660 | buffer_init(); | 675 | buffer_init(); |
| 661 | key_init(); | 676 | key_init(); |
| 662 | radix_tree_init(); | ||
| 663 | security_init(); | 677 | security_init(); |
| 664 | vfs_caches_init(totalram_pages); | 678 | vfs_caches_init(totalram_pages); |
| 665 | signals_init(); | 679 | signals_init(); |
