diff options
| -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 b9d1ff588445..227b0448960d 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) | |||
| 51 | 51 | ||
| 52 | static unsigned long vmware_get_tsc_khz(void) | 52 | static unsigned long vmware_get_tsc_khz(void) |
| 53 | { | 53 | { |
| 54 | uint64_t tsc_hz; | 54 | uint64_t tsc_hz, lpj; |
| 55 | uint32_t eax, ebx, ecx, edx; | 55 | uint32_t eax, ebx, ecx, edx; |
| 56 | 56 | ||
| 57 | VMWARE_PORT(GETHZ, eax, ebx, ecx, edx); | 57 | VMWARE_PORT(GETHZ, eax, ebx, ecx, edx); |
| @@ -62,6 +62,13 @@ static unsigned long vmware_get_tsc_khz(void) | |||
| 62 | printk(KERN_INFO "TSC freq read from hypervisor : %lu.%03lu MHz\n", | 62 | printk(KERN_INFO "TSC freq read from hypervisor : %lu.%03lu MHz\n", |
| 63 | (unsigned long) tsc_hz / 1000, | 63 | (unsigned long) tsc_hz / 1000, |
| 64 | (unsigned long) tsc_hz % 1000); | 64 | (unsigned long) tsc_hz % 1000); |
| 65 | |||
| 66 | if (!preset_lpj) { | ||
| 67 | lpj = ((u64)tsc_hz * 1000); | ||
| 68 | do_div(lpj, HZ); | ||
| 69 | preset_lpj = lpj; | ||
| 70 | } | ||
| 71 | |||
| 65 | return tsc_hz; | 72 | return tsc_hz; |
| 66 | } | 73 | } |
| 67 | 74 | ||
