diff options
Diffstat (limited to 'arch/x86/kernel/cpu/vmware.c')
| -rw-r--r-- | arch/x86/kernel/cpu/vmware.c | 9 | 
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c index b9d1ff58844..227b0448960 100644 --- a/arch/x86/kernel/cpu/vmware.c +++ b/arch/x86/kernel/cpu/vmware.c @@ -51,7 +51,7 @@ static inline int __vmware_platform(void)  static unsigned long vmware_get_tsc_khz(void)  { -	uint64_t tsc_hz; +	uint64_t tsc_hz, lpj;  	uint32_t eax, ebx, ecx, edx;  	VMWARE_PORT(GETHZ, eax, ebx, ecx, edx); @@ -62,6 +62,13 @@ static unsigned long vmware_get_tsc_khz(void)  	printk(KERN_INFO "TSC freq read from hypervisor : %lu.%03lu MHz\n",  			 (unsigned long) tsc_hz / 1000,  			 (unsigned long) tsc_hz % 1000); + +	if (!preset_lpj) { +		lpj = ((u64)tsc_hz * 1000); +		do_div(lpj, HZ); +		preset_lpj = lpj; +	} +  	return tsc_hz;  }  | 
