]> err.no Git - linux-2.6/blobdiff - include/asm-x86/msr.h
Merge git://git.infradead.org/~dedekind/ubi-2.6
[linux-2.6] / include / asm-x86 / msr.h
index 088652a62d585d597b2c42f162674aabf68bd89c..204a8a30fecf8e9669aae32b6f6db83852cb694b 100644 (file)
@@ -91,11 +91,16 @@ static inline int native_write_msr_safe(unsigned int msr,
        return err;
 }
 
-static inline unsigned long long native_read_tsc(void)
+extern unsigned long long native_read_tsc(void);
+
+static __always_inline unsigned long long __native_read_tsc(void)
 {
        DECLARE_ARGS(val, low, high);
 
+       rdtsc_barrier();
        asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));
+       rdtsc_barrier();
+
        return EAX_EDX_VAL(val, low, high);
 }
 
@@ -157,8 +162,6 @@ static inline int wrmsr_safe(unsigned msr, unsigned low, unsigned high)
 #define rdtscll(val)                                           \
        ((val) = native_read_tsc())
 
-#define write_tsc(val1,val2) wrmsr(0x10, val1, val2)
-
 #define rdpmc(counter,low,high)                                        \
        do {                                                    \
                u64 _l = native_read_pmc(counter);              \