KVM: destroy workqueue on kvm_create_pit() failures
authorXiaotian Feng <dfeng@redhat.com>
Fri, 13 Aug 2010 08:23:06 +0000 (16:23 +0800)
committerAvi Kivity <avi@redhat.com>
Sun, 15 Aug 2010 11:17:35 +0000 (14:17 +0300)
kernel needs to destroy workqueue if kvm_create_pit() fails, otherwise
after pit is freed, the workqueue is leaked.

Signed-off-by: Xiaotian Feng <dfeng@redhat.com>
Cc: Avi Kivity <avi@redhat.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Gleb Natapov <gleb@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Gregory Haskins <ghaskins@novell.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/i8254.c

index 0fd6378981f4a6c7ba7cadbb139bc811760c0a43..f539c3c2a6879be3a381cc92effdbb0c6e5ae75b 100644 (file)
@@ -742,7 +742,7 @@ fail:
        kvm_unregister_irq_mask_notifier(kvm, 0, &pit->mask_notifier);
        kvm_unregister_irq_ack_notifier(kvm, &pit_state->irq_ack_notifier);
        kvm_free_irq_source_id(kvm, pit->irq_source_id);
-
+       destroy_workqueue(pit->wq);
        kfree(pit);
        return NULL;
 }