aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/msr.h
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/include/asm-x86/msr.h
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/include/asm-x86/msr.h')
-rw-r--r--xen/include/asm-x86/msr.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/xen/include/asm-x86/msr.h b/xen/include/asm-x86/msr.h
index 09fa288081..3b4132f867 100644
--- a/xen/include/asm-x86/msr.h
+++ b/xen/include/asm-x86/msr.h
@@ -87,7 +87,13 @@ static inline int wrmsr_safe(unsigned int msr, uint64_t val)
} while(0)
#endif
-#define write_tsc(val) wrmsrl(MSR_IA32_TSC, val)
+#define __write_tsc(val) wrmsrl(MSR_IA32_TSC, val)
+#define write_tsc(val) ({ \
+ /* Reliable TSCs are in lockstep across all CPUs. We should \
+ * never write to them. */ \
+ ASSERT(!boot_cpu_has(X86_FEATURE_TSC_RELIABLE)); \
+ __write_tsc(val); \
+})
#define write_rdtscp_aux(val) wrmsr(MSR_TSC_AUX, (val), 0)