diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-11 22:13:40 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-11 22:13:40 -0500 |
commit | 9fc5c3e3237e02a94f41cd1d2b4291593d29791d (patch) | |
tree | c8823725b10bd4d36e9311ea392dfdecb4db7974 /arch/x86/kernel/smpboot.c | |
parent | 541048a1d31399ccdda27346a37eae4a2ad55186 (diff) | |
parent | 7c9c3a1e5fc8728e948b8fa3cbcfcfb86db3afda (diff) |
Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
* 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/intel config: Fix the APB_TIMER selection
x86/mrst: Add additional debug prints for pb_keys
x86/intel config: Revamp configuration to allow for Moorestown and Medfield
x86/intel/scu/ipc: Match the changes in the x86 configuration
x86/apb: Fix configuration constraints
x86: Fix INTEL_MID silly
x86/Kconfig: Cyclone-timer depends on x86-summit
x86: Reduce clock calibration time during slave cpu startup
x86/config: Revamp configuration for MID devices
x86/sfi: Kill the IRQ as id hack
Diffstat (limited to 'arch/x86/kernel/smpboot.c')
-rw-r--r-- | arch/x86/kernel/smpboot.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 79f636bc44c6..66d250c00d11 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -207,23 +207,29 @@ static void __cpuinit smp_callin(void) | |||
207 | * Need to setup vector mappings before we enable interrupts. | 207 | * Need to setup vector mappings before we enable interrupts. |
208 | */ | 208 | */ |
209 | setup_vector_irq(smp_processor_id()); | 209 | setup_vector_irq(smp_processor_id()); |
210 | |||
211 | /* | ||
212 | * Save our processor parameters. Note: this information | ||
213 | * is needed for clock calibration. | ||
214 | */ | ||
215 | smp_store_cpu_info(cpuid); | ||
216 | |||
210 | /* | 217 | /* |
211 | * Get our bogomips. | 218 | * Get our bogomips. |
219 | * Update loops_per_jiffy in cpu_data. Previous call to | ||
220 | * smp_store_cpu_info() stored a value that is close but not as | ||
221 | * accurate as the value just calculated. | ||
212 | * | 222 | * |
213 | * Need to enable IRQs because it can take longer and then | 223 | * Need to enable IRQs because it can take longer and then |
214 | * the NMI watchdog might kill us. | 224 | * the NMI watchdog might kill us. |
215 | */ | 225 | */ |
216 | local_irq_enable(); | 226 | local_irq_enable(); |
217 | calibrate_delay(); | 227 | calibrate_delay(); |
228 | cpu_data(cpuid).loops_per_jiffy = loops_per_jiffy; | ||
218 | local_irq_disable(); | 229 | local_irq_disable(); |
219 | pr_debug("Stack at about %p\n", &cpuid); | 230 | pr_debug("Stack at about %p\n", &cpuid); |
220 | 231 | ||
221 | /* | 232 | /* |
222 | * Save our processor parameters | ||
223 | */ | ||
224 | smp_store_cpu_info(cpuid); | ||
225 | |||
226 | /* | ||
227 | * This must be done before setting cpu_online_mask | 233 | * This must be done before setting cpu_online_mask |
228 | * or calling notify_cpu_starting. | 234 | * or calling notify_cpu_starting. |
229 | */ | 235 | */ |