diff options
Diffstat (limited to 'include/asm-x86/msr.h')
-rw-r--r-- | include/asm-x86/msr.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/asm-x86/msr.h b/include/asm-x86/msr.h index decfec4ab17c..204a8a30fecf 100644 --- a/include/asm-x86/msr.h +++ b/include/asm-x86/msr.h | |||
@@ -93,6 +93,17 @@ static inline int native_write_msr_safe(unsigned int msr, | |||
93 | 93 | ||
94 | extern unsigned long long native_read_tsc(void); | 94 | extern unsigned long long native_read_tsc(void); |
95 | 95 | ||
96 | static __always_inline unsigned long long __native_read_tsc(void) | ||
97 | { | ||
98 | DECLARE_ARGS(val, low, high); | ||
99 | |||
100 | rdtsc_barrier(); | ||
101 | asm volatile("rdtsc" : EAX_EDX_RET(val, low, high)); | ||
102 | rdtsc_barrier(); | ||
103 | |||
104 | return EAX_EDX_VAL(val, low, high); | ||
105 | } | ||
106 | |||
96 | static inline unsigned long long native_read_pmc(int counter) | 107 | static inline unsigned long long native_read_pmc(int counter) |
97 | { | 108 | { |
98 | DECLARE_ARGS(val, low, high); | 109 | DECLARE_ARGS(val, low, high); |