diff options
-rw-r--r-- | arch/x86/kvm/i8254.c | 3 | ||||
-rw-r--r-- | arch/x86/kvm/x86.c | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c index 70db4d435393..0fd6378981f4 100644 --- a/arch/x86/kvm/i8254.c +++ b/arch/x86/kvm/i8254.c | |||
@@ -752,6 +752,9 @@ void kvm_free_pit(struct kvm *kvm) | |||
752 | struct hrtimer *timer; | 752 | struct hrtimer *timer; |
753 | 753 | ||
754 | if (kvm->arch.vpit) { | 754 | if (kvm->arch.vpit) { |
755 | kvm_io_bus_unregister_dev(kvm, KVM_PIO_BUS, &kvm->arch.vpit->dev); | ||
756 | kvm_io_bus_unregister_dev(kvm, KVM_PIO_BUS, | ||
757 | &kvm->arch.vpit->speaker_dev); | ||
755 | kvm_unregister_irq_mask_notifier(kvm, 0, | 758 | kvm_unregister_irq_mask_notifier(kvm, 0, |
756 | &kvm->arch.vpit->mask_notifier); | 759 | &kvm->arch.vpit->mask_notifier); |
757 | kvm_unregister_irq_ack_notifier(kvm, | 760 | kvm_unregister_irq_ack_notifier(kvm, |
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index d51eed239b47..d721e2d81a53 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
@@ -5523,12 +5523,12 @@ static void kvm_free_vcpus(struct kvm *kvm) | |||
5523 | void kvm_arch_sync_events(struct kvm *kvm) | 5523 | void kvm_arch_sync_events(struct kvm *kvm) |
5524 | { | 5524 | { |
5525 | kvm_free_all_assigned_devices(kvm); | 5525 | kvm_free_all_assigned_devices(kvm); |
5526 | kvm_free_pit(kvm); | ||
5526 | } | 5527 | } |
5527 | 5528 | ||
5528 | void kvm_arch_destroy_vm(struct kvm *kvm) | 5529 | void kvm_arch_destroy_vm(struct kvm *kvm) |
5529 | { | 5530 | { |
5530 | kvm_iommu_unmap_guest(kvm); | 5531 | kvm_iommu_unmap_guest(kvm); |
5531 | kvm_free_pit(kvm); | ||
5532 | kfree(kvm->arch.vpic); | 5532 | kfree(kvm->arch.vpic); |
5533 | kfree(kvm->arch.vioapic); | 5533 | kfree(kvm->arch.vioapic); |
5534 | kvm_free_vcpus(kvm); | 5534 | kvm_free_vcpus(kvm); |