aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlauber de Oliveira Costa <gcosta@redhat.com>2008-03-19 13:26:04 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-17 11:41:04 -0400
commite7bc8fbad4c582639334285dd1d9571578c58674 (patch)
tree449467863802af58f23b66855b433b8df0abe08e
parentbd7b47ba5e4ced4e20bed2394c9580637d44550a (diff)
x86: get rid of smp_boot_cpus
This patch get rid of smp_boot_cpus(), since it does not boot any cpu anymore. Its code is split in a way to make it closer to x86_64 Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--arch/x86/kernel/smpboot_32.c30
1 files changed, 11 insertions, 19 deletions
diff --git a/arch/x86/kernel/smpboot_32.c b/arch/x86/kernel/smpboot_32.c
index 14db038b6b48..d153d8423740 100644
--- a/arch/x86/kernel/smpboot_32.c
+++ b/arch/x86/kernel/smpboot_32.c
@@ -172,21 +172,19 @@ static int __init smp_sanity_check(unsigned max_cpus)
172 return 0; 172 return 0;
173} 173}
174 174
175/* 175/* These are wrappers to interface to the new boot process. Someone
176 * Cycle through the processors sending APIC IPIs to boot each. 176 who understands all this stuff should rewrite it properly. --RR 15/Jul/02 */
177 */ 177void __init native_smp_prepare_cpus(unsigned int max_cpus)
178static void __init smp_boot_cpus(unsigned int max_cpus)
179{ 178{
179 nmi_watchdog_default();
180 cpu_callin_map = cpumask_of_cpu(0);
181 mb();
182
180 /* 183 /*
181 * Setup boot CPU information 184 * Setup boot CPU information
182 */ 185 */
183 smp_store_cpu_info(0); /* Final full version of the data */ 186 smp_store_cpu_info(0); /* Final full version of the data */
184 printk(KERN_INFO "CPU%d: ", 0);
185 print_cpu_info(&cpu_data(0));
186
187 boot_cpu_physical_apicid = GET_APIC_ID(apic_read(APIC_ID));
188 boot_cpu_logical_apicid = logical_smp_processor_id(); 187 boot_cpu_logical_apicid = logical_smp_processor_id();
189
190 current_thread_info()->cpu = 0; 188 current_thread_info()->cpu = 0;
191 189
192 set_cpu_sibling_map(0); 190 set_cpu_sibling_map(0);
@@ -197,25 +195,19 @@ static void __init smp_boot_cpus(unsigned int max_cpus)
197 return; 195 return;
198 } 196 }
199 197
198 boot_cpu_physical_apicid = GET_APIC_ID(apic_read(APIC_ID));
199
200 connect_bsp_APIC(); 200 connect_bsp_APIC();
201 setup_local_APIC(); 201 setup_local_APIC();
202 end_local_APIC_setup(); 202 end_local_APIC_setup();
203 map_cpu_to_logical_apicid(); 203 map_cpu_to_logical_apicid();
204 204
205
206 setup_portio_remap(); 205 setup_portio_remap();
207 206
208 smpboot_setup_io_apic(); 207 smpboot_setup_io_apic();
209 208
209 printk(KERN_INFO "CPU%d: ", 0);
210 print_cpu_info(&cpu_data(0));
210 setup_boot_clock(); 211 setup_boot_clock();
211} 212}
212 213
213/* These are wrappers to interface to the new boot process. Someone
214 who understands all this stuff should rewrite it properly. --RR 15/Jul/02 */
215void __init native_smp_prepare_cpus(unsigned int max_cpus)
216{
217 nmi_watchdog_default();
218 cpu_callin_map = cpumask_of_cpu(0);
219 mb();
220 smp_boot_cpus(max_cpus);
221}