diff options
Diffstat (limited to 'init/main.c')
-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 dac44a9356a5..05b5283e98fa 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); |
@@ -584,6 +598,7 @@ asmlinkage void __init start_kernel(void) | |||
584 | local_irq_disable(); | 598 | local_irq_disable(); |
585 | } | 599 | } |
586 | rcu_init(); | 600 | rcu_init(); |
601 | radix_tree_init(); | ||
587 | /* init some links before init_ISA_irqs() */ | 602 | /* init some links before init_ISA_irqs() */ |
588 | early_irq_init(); | 603 | early_irq_init(); |
589 | init_IRQ(); | 604 | init_IRQ(); |
@@ -659,7 +674,6 @@ asmlinkage void __init start_kernel(void) | |||
659 | key_init(); | 674 | key_init(); |
660 | security_init(); | 675 | security_init(); |
661 | vfs_caches_init(totalram_pages); | 676 | vfs_caches_init(totalram_pages); |
662 | radix_tree_init(); | ||
663 | signals_init(); | 677 | signals_init(); |
664 | /* rootfs populating might need page-writeback */ | 678 | /* rootfs populating might need page-writeback */ |
665 | page_writeback_init(); | 679 | page_writeback_init(); |