Skip to contentSkip to conversation

kvm: external module: do not hardcode tsc_khz

PATCH Applied Marcelo Tosatti 2 participants 2 messages Mar 23, 2009 – Mar 24, 2009 KVM

lore
Share & tools
lore
#0 lore raw

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.

kernel/external-module-compat-comm.h +2 -6
index a14cea2..e0dc577 100644
@@ -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>
Applied
#1 lore raw
Quoted 8 lines · Marcelo Tosatti

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.

Applied, thanks.

Signature · 1 line
Do not meddle in the internals of kernels, for they are subtle and quick to panic.