diff options
Diffstat (limited to 'init/main.c')
| -rw-r--r-- | init/main.c | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/init/main.c b/init/main.c index d3bcb3b11620..cc0653ec081d 100644 --- a/init/main.c +++ b/init/main.c | |||
| @@ -146,9 +146,14 @@ static unsigned int __initdata max_cpus = NR_CPUS; | |||
| 146 | * greater than 0, limits the maximum number of CPUs activated in | 146 | * greater than 0, limits the maximum number of CPUs activated in | 
| 147 | * SMP mode to <NUM>. | 147 | * SMP mode to <NUM>. | 
| 148 | */ | 148 | */ | 
| 149 | #ifndef CONFIG_X86_IO_APIC | ||
| 150 | static inline void disable_ioapic_setup(void) {}; | ||
| 151 | #endif | ||
| 152 | |||
| 149 | static int __init nosmp(char *str) | 153 | static int __init nosmp(char *str) | 
| 150 | { | 154 | { | 
| 151 | max_cpus = 0; | 155 | max_cpus = 0; | 
| 156 | disable_ioapic_setup(); | ||
| 152 | return 0; | 157 | return 0; | 
| 153 | } | 158 | } | 
| 154 | 159 | ||
| @@ -157,10 +162,13 @@ early_param("nosmp", nosmp); | |||
| 157 | static int __init maxcpus(char *str) | 162 | static int __init maxcpus(char *str) | 
| 158 | { | 163 | { | 
| 159 | get_option(&str, &max_cpus); | 164 | get_option(&str, &max_cpus); | 
| 160 | return 1; | 165 | if (max_cpus == 0) | 
| 166 | disable_ioapic_setup(); | ||
| 167 | |||
| 168 | return 0; | ||
| 161 | } | 169 | } | 
| 162 | 170 | ||
| 163 | __setup("maxcpus=", maxcpus); | 171 | early_param("maxcpus=", maxcpus); | 
| 164 | #else | 172 | #else | 
| 165 | #define max_cpus NR_CPUS | 173 | #define max_cpus NR_CPUS | 
| 166 | #endif | 174 | #endif | 
