x86: move native_read_tsc() offline
move native_read_tsc() offline.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c
index d040840..c42cf12 100644
--- a/arch/x86/kernel/rtc.c
+++ b/arch/x86/kernel/rtc.c
@@ -6,6 +6,7 @@
#include <linux/mc146818rtc.h>
#include <asm/time.h>
+#include <asm/vsyscall.h>
#ifdef CONFIG_X86_32
# define CMOS_YEARS_OFFS 1900
@@ -194,3 +195,12 @@
{
return set_rtc_mmss(now.tv_sec);
}
+
+unsigned long long __vsyscall_fn native_read_tsc(void)
+{
+ DECLARE_ARGS(val, low, high);
+
+ asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));
+ return EAX_EDX_VAL(val, low, high);
+}
+EXPORT_SYMBOL_GPL(native_read_tsc);
diff --git a/include/asm-x86/msr.h b/include/asm-x86/msr.h
index bca8c39..decfec4 100644
--- a/include/asm-x86/msr.h
+++ b/include/asm-x86/msr.h
@@ -91,13 +91,7 @@
return err;
}
-static inline unsigned long long native_read_tsc(void)
-{
- DECLARE_ARGS(val, low, high);
-
- asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));
- return EAX_EDX_VAL(val, low, high);
-}
+extern unsigned long long native_read_tsc(void);
static inline unsigned long long native_read_pmc(int counter)
{