kvm: external module: do not hardcode tsc_khz

Marcelo Tosatti
2009-03-23T17:46:53Z

external module compat hard codes tsc_khz as 2000000 if KERNEL_VERSION <
(2,6,23).

This breaks kvmclock on hosts with different frequency.

While tsc_khz was only exported on 2.6.23, the majority of relevant
older v2.6 based distros seem to have it exported.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

diff --git a/kernel/external-module-compat-comm.h b/kernel/external-module-compat-comm.h
index a14cea2..e0dc577 100644
--- a/kernel/external-module-compat-comm.h
+++ b/kernel/external-module-compat-comm.h
@@ -387,15 +387,11 @@ static inline struct page *__kvm_vm_fault(struct vm_area_struct *vma,
#endif

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
-
-static unsigned __attribute__((__used__)) kvm_tsc_khz = 2000000;
-
-#else
+extern unsigned int tsc_khz;
+#endif

#define kvm_tsc_khz tsc_khz

-#endif
-
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,21)

#include <linux/ktime.h>