diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-01-30 13:32:40 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 13:32:40 +0100 |
commit | 92767af0e3904b4d35ed547fb514ff6cb227e678 (patch) | |
tree | 635be2878ede16e4b12d23cfbd9d8dd16406dcef /include | |
parent | 6d63de8dbcda98511206897562ecfcdacf18f523 (diff) | |
download | linux-92767af0e3904b4d35ed547fb514ff6cb227e678.tar.bz2 |
x86: fix sched_clock()
[ andi@firstfloor.org: build fix ]
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-x86/msr.h | 11 | ||||
-rw-r--r-- | include/asm-x86/tsc.h | 2 |
2 files changed, 12 insertions, 1 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, 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); +} + static inline unsigned long long native_read_pmc(int counter) { DECLARE_ARGS(val, low, high); diff --git a/include/asm-x86/tsc.h b/include/asm-x86/tsc.h index f51a50da35aa..071e0ce5b664 100644 --- a/include/asm-x86/tsc.h +++ b/include/asm-x86/tsc.h @@ -46,7 +46,7 @@ static inline cycles_t vget_cycles(void) if (!cpu_has_tsc) return 0; #endif - return (cycles_t) native_read_tsc(); + return (cycles_t) __native_read_tsc(); } extern void tsc_init(void); |