diff options
author | Steve French | 2005-08-21 06:40:00 +0200 |
---|---|---|
committer | Steve French | 2005-08-21 06:40:00 +0200 |
commit | 646352319b6cd369750a706706810d87f6b6efa7 (patch) | |
tree | e7830e1276cbad7d29bf9471def4b8940592c3b7 /arch/x86_64/kernel/smpboot.c | |
parent | [CIFS] Finish cifs mount option which requests case insensitive path (diff) | |
parent | Don't allow normal users to set idle IO priority (diff) | |
download | kernel-qcow2-linux-646352319b6cd369750a706706810d87f6b6efa7.tar.gz kernel-qcow2-linux-646352319b6cd369750a706706810d87f6b6efa7.tar.xz kernel-qcow2-linux-646352319b6cd369750a706706810d87f6b6efa7.zip |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'arch/x86_64/kernel/smpboot.c')
-rw-r--r-- | arch/x86_64/kernel/smpboot.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c index b15761ff4101..fa25e39fe54d 100644 --- a/arch/x86_64/kernel/smpboot.c +++ b/arch/x86_64/kernel/smpboot.c @@ -492,6 +492,14 @@ void __cpuinit start_secondary(void) */ set_cpu_sibling_map(smp_processor_id()); + /* + * Wait for TSC sync to not schedule things before. + * We still process interrupts, which could see an inconsistent + * time in that window unfortunately. + * Do this here because TSC sync has global unprotected state. + */ + tsc_sync_wait(); + /* * We need to hold call_lock, so there is no inconsistency * between the time smp_call_function() determines number of @@ -509,13 +517,6 @@ void __cpuinit start_secondary(void) per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; unlock_ipi_call_lock(); - mb(); - - /* Wait for TSC sync to not schedule things before. - We still process interrupts, which could see an inconsistent - time in that window unfortunately. */ - tsc_sync_wait(); - cpu_idle(); } |