aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/msr.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-x86/msr.h')
-rw-r--r--include/asm-x86/msr.h11
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
94extern unsigned long long native_read_tsc(void); 94extern unsigned long long native_read_tsc(void);
95 95
96static __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
96static inline unsigned long long native_read_pmc(int counter) 107static inline unsigned long long native_read_pmc(int counter)
97{ 108{
98 DECLARE_ARGS(val, low, high); 109 DECLARE_ARGS(val, low, high);