From 545352dcfd3e2e387c0143bbf4780ef593a15600 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Wed, 30 Jan 2008 13:32:40 +0100 Subject: [PATCH] --- yaml --- r: 80157 b: refs/heads/master c: 92767af0e3904b4d35ed547fb514ff6cb227e678 h: refs/heads/master i: 80155: aecc6fbe526b2516b65a6b01678b7b3f86bd7b2e v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/rtc.c | 13 ++++--------- trunk/include/asm-x86/msr.h | 11 +++++++++++ trunk/include/asm-x86/tsc.h | 2 +- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 72855d53a905..7c978da9fefc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6d63de8dbcda98511206897562ecfcdacf18f523 +refs/heads/master: 92767af0e3904b4d35ed547fb514ff6cb227e678 diff --git a/trunk/arch/x86/kernel/rtc.c b/trunk/arch/x86/kernel/rtc.c index 276cb7073ab1..eb9b1a198f5e 100644 --- a/trunk/arch/x86/kernel/rtc.c +++ b/trunk/arch/x86/kernel/rtc.c @@ -196,14 +196,9 @@ int update_persistent_clock(struct timespec now) return set_rtc_mmss(now.tv_sec); } -unsigned long long __vsyscall_fn native_read_tsc(void) +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); + return __native_read_tsc(); } -EXPORT_SYMBOL_GPL(native_read_tsc); +EXPORT_SYMBOL(native_read_tsc); + diff --git a/trunk/include/asm-x86/msr.h b/trunk/include/asm-x86/msr.h index decfec4ab17c..204a8a30fecf 100644 --- a/trunk/include/asm-x86/msr.h +++ b/trunk/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/trunk/include/asm-x86/tsc.h b/trunk/include/asm-x86/tsc.h index f51a50da35aa..071e0ce5b664 100644 --- a/trunk/include/asm-x86/tsc.h +++ b/trunk/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);