kvm: external module: do not hardcode tsc_khz
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 <[email protected]>
kernel/external-module-compat-comm.h +2 -6
@@ -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>
Avi Kivity
AppliedQuoted 8 lines · Marcelo Tosatti
external module compat hard codes
tsc_khzas 2000000 ifKERNEL_VERSION< (2,6,23).This breaks kvmclock on hosts with different frequency.
While
tsc_khzwas 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.