From b535cdbdb125b9c972e7c77c0835218019bdd017 Mon Sep 17 00:00:00 2001 From: Zachary Amsden Date: Fri, 9 Oct 2009 16:26:08 -1000 Subject: [PATCH] --- yaml --- r: 172307 b: refs/heads/master c: 6b7d7e762b238f908fe4c3345c2c6eb5c3fdbd59 h: refs/heads/master i: 172305: da07140a66c7f987167da3c28c8fa81ae7d4f0d7 172303: 2cec686be969d4530fd124dbb299ea40a609809c v: v3 --- [refs] | 2 +- trunk/arch/x86/kvm/x86.c | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index f4540f6a96ca..7f3160eb7442 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 565d0998ecac8373b9a9ecd5991abe74318cd235 +refs/heads/master: 6b7d7e762b238f908fe4c3345c2c6eb5c3fdbd59 diff --git a/trunk/arch/x86/kvm/x86.c b/trunk/arch/x86/kvm/x86.c index 098e7f886306..3cffa2cac70b 100644 --- a/trunk/arch/x86/kvm/x86.c +++ b/trunk/arch/x86/kvm/x86.c @@ -1348,8 +1348,12 @@ long kvm_arch_dev_ioctl(struct file *filp, void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu) { kvm_x86_ops->vcpu_load(vcpu, cpu); - if (unlikely(per_cpu(cpu_tsc_khz, cpu) == 0)) - per_cpu(cpu_tsc_khz, cpu) = cpufreq_quick_get(cpu); + if (unlikely(per_cpu(cpu_tsc_khz, cpu) == 0)) { + unsigned long khz = cpufreq_quick_get(cpu); + if (!khz) + khz = tsc_khz; + per_cpu(cpu_tsc_khz, cpu) = khz; + } kvm_request_guest_time_update(vcpu); } @@ -3144,8 +3148,12 @@ static void kvm_timer_init(void) if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) { cpufreq_register_notifier(&kvmclock_cpufreq_notifier_block, CPUFREQ_TRANSITION_NOTIFIER); - for_each_online_cpu(cpu) - per_cpu(cpu_tsc_khz, cpu) = cpufreq_get(cpu); + for_each_online_cpu(cpu) { + unsigned long khz = cpufreq_get(cpu); + if (!khz) + khz = tsc_khz; + per_cpu(cpu_tsc_khz, cpu) = khz; + } } else { for_each_possible_cpu(cpu) per_cpu(cpu_tsc_khz, cpu) = tsc_khz;