summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/x86.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-04-24 08:26:01 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-04-24 08:26:01 -0700
commit60911731fe7fd4ec4d088fc1a48a56c9fb14103f (patch)
treea4343a10d8cb6195dbda3bc2bc2688e42de70fb4 /arch/x86/kvm/x86.c
parentd1f53fb90ee631a2cf8f7bdd0e921a338106e4f9 (diff)
parent888d256e9c565cb61505bd218eb37c81fe77a325 (diff)
Merge branch 'kvm-updates/2.6.30' of git://git.kernel.org/pub/scm/virt/kvm/kvm
* 'kvm-updates/2.6.30' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: Unregister cpufreq notifier on unload KVM: x86: release time_page on vcpu destruction KVM: Fix overlapping check for memory slots KVM: MMU: disable global page optimization KVM: ia64: fix locking order entering guest KVM: MMU: Fix off-by-one calculating large page count
Diffstat (limited to 'arch/x86/kvm/x86.c')
-rw-r--r--arch/x86/kvm/x86.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 8ca100a9eca..7c1ce5ac613 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2775,6 +2775,9 @@ out:
void kvm_arch_exit(void)
{
+ if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC))
+ cpufreq_unregister_notifier(&kvmclock_cpufreq_notifier_block,
+ CPUFREQ_TRANSITION_NOTIFIER);
kvm_x86_ops = NULL;
kvm_mmu_module_exit();
}
@@ -4159,6 +4162,11 @@ EXPORT_SYMBOL_GPL(kvm_put_guest_fpu);
void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu)
{
+ if (vcpu->arch.time_page) {
+ kvm_release_page_dirty(vcpu->arch.time_page);
+ vcpu->arch.time_page = NULL;
+ }
+
kvm_x86_ops->vcpu_free(vcpu);
}