KVM: PIT: unregister kvm irq notifier if fail to create pit
authorWei Yongjun <yjwei@cn.fujitsu.com>
Mon, 8 Feb 2010 09:03:51 +0000 (17:03 +0800)
committerMarcelo Tosatti <mtosatti@redhat.com>
Mon, 1 Mar 2010 15:36:09 +0000 (12:36 -0300)
If fail to create pit, we should unregister kvm irq notifier
which register in kvm_create_pit().

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Acked-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/i8254.c

index 6a74246f80c68bbdd23bb76740a843d2a816a968..c9569f20dfba48ec48348d05e7b1497990018703 100644 (file)
@@ -663,8 +663,9 @@ fail_unregister:
        kvm_io_bus_unregister_dev(kvm, KVM_PIO_BUS, &pit->dev);
 
 fail:
-       if (pit->irq_source_id >= 0)
-               kvm_free_irq_source_id(kvm, pit->irq_source_id);
+       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);
 
        kfree(pit);
        return NULL;