Commit 92767af0e3904b4d35ed547fb514ff6cb227e678

Authored by Ingo Molnar
1 parent 6d63de8dbc

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>

Showing 3 changed files with 16 additions and 10 deletions Side-by-side Diff

arch/x86/kernel/rtc.c
... ... @@ -196,15 +196,9 @@
196 196 return set_rtc_mmss(now.tv_sec);
197 197 }
198 198  
199   -unsigned long long __vsyscall_fn native_read_tsc(void)
  199 +unsigned long long native_read_tsc(void)
200 200 {
201   - DECLARE_ARGS(val, low, high);
202   -
203   - rdtsc_barrier();
204   - asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));
205   - rdtsc_barrier();
206   -
207   - return EAX_EDX_VAL(val, low, high);
  201 + return __native_read_tsc();
208 202 }
209   -EXPORT_SYMBOL_GPL(native_read_tsc);
  203 +EXPORT_SYMBOL(native_read_tsc);
include/asm-x86/msr.h
... ... @@ -93,6 +93,17 @@
93 93  
94 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 107 static inline unsigned long long native_read_pmc(int counter)
97 108 {
98 109 DECLARE_ARGS(val, low, high);
include/asm-x86/tsc.h
... ... @@ -46,7 +46,7 @@
46 46 if (!cpu_has_tsc)
47 47 return 0;
48 48 #endif
49   - return (cycles_t) native_read_tsc();
  49 + return (cycles_t) __native_read_tsc();
50 50 }
51 51  
52 52 extern void tsc_init(void);