aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/smpboot.c
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2011-05-16 13:24:05 +0100
committerKeir Fraser <keir@xen.org>2011-05-16 13:24:05 +0100
commit4b850bd91f4127621c7cca612983578a741c249d (patch)
tree13858869e989a33fd692c21211e2cacd10869ebf /xen/arch/x86/smpboot.c
parent7ee854f17114f18b27d702a91729c23fa3224cd2 (diff)
downloadxen-4b850bd91f4127621c7cca612983578a741c249d.tar.gz
xen-4b850bd91f4127621c7cca612983578a741c249d.tar.bz2
xen-4b850bd91f4127621c7cca612983578a741c249d.zip
x86/tsc: Remove incorrect assertion from cstate_restore_tsc()...
..fix and move to write_tsc(). Signed-off-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/arch/x86/smpboot.c')
-rw-r--r--xen/arch/x86/smpboot.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index fddf85f2fe..deab8f7607 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -175,7 +175,12 @@ static void synchronize_tsc_slave(unsigned int slave)
while ( atomic_read(&tsc_count) != ((i<<1)-1) )
cpu_relax();
rmb();
- write_tsc(tsc_value);
+ /*
+ * If a CPU has been physically hotplugged, we may as well write
+ * to its TSC in spite of X86_FEATURE_TSC_RELIABLE. The platform does
+ * not sync up a new CPU's TSC for us.
+ */
+ __write_tsc(tsc_value);
atomic_inc(&tsc_count);
}
}