|
@@ -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;
|
|
|
}
|
|
|
|