KVM: i8254: refactor kvm_free_pit
Could be easier to read, but git history will become deeper. Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
10d2482126
commit
08e5ccf3ae
|
@ -738,18 +738,16 @@ struct kvm_pit *kvm_create_pit(struct kvm *kvm, u32 flags)
|
|||
|
||||
void kvm_free_pit(struct kvm *kvm)
|
||||
{
|
||||
struct hrtimer *timer;
|
||||
struct kvm_pit *pit = kvm->arch.vpit;
|
||||
|
||||
if (kvm->arch.vpit) {
|
||||
kvm_io_bus_unregister_dev(kvm, KVM_PIO_BUS, &kvm->arch.vpit->dev);
|
||||
kvm_io_bus_unregister_dev(kvm, KVM_PIO_BUS,
|
||||
&kvm->arch.vpit->speaker_dev);
|
||||
kvm_pit_set_reinject(kvm->arch.vpit, false);
|
||||
timer = &kvm->arch.vpit->pit_state.timer;
|
||||
hrtimer_cancel(timer);
|
||||
flush_kthread_work(&kvm->arch.vpit->expired);
|
||||
kthread_stop(kvm->arch.vpit->worker_task);
|
||||
kvm_free_irq_source_id(kvm, kvm->arch.vpit->irq_source_id);
|
||||
kfree(kvm->arch.vpit);
|
||||
if (pit) {
|
||||
kvm_io_bus_unregister_dev(kvm, KVM_PIO_BUS, &pit->dev);
|
||||
kvm_io_bus_unregister_dev(kvm, KVM_PIO_BUS, &pit->speaker_dev);
|
||||
kvm_pit_set_reinject(pit, false);
|
||||
hrtimer_cancel(&pit->pit_state.timer);
|
||||
flush_kthread_work(&pit->expired);
|
||||
kthread_stop(pit->worker_task);
|
||||
kvm_free_irq_source_id(kvm, pit->irq_source_id);
|
||||
kfree(pit);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue