Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/hch/hfsplus
[pandora-kernel.git] / arch / x86 / kvm / i8254.c
index 0fd6378..efad723 100644 (file)
@@ -5,7 +5,7 @@
  * Copyright (c) 2006 Intel Corporation
  * Copyright (c) 2007 Keir Fraser, XenSource Inc
  * Copyright (c) 2008 Intel Corporation
- * Copyright 2009 Red Hat, Inc. and/or its affilates.
+ * Copyright 2009 Red Hat, Inc. and/or its affiliates.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -232,15 +232,6 @@ static void pit_latch_status(struct kvm *kvm, int channel)
        }
 }
 
-int pit_has_pending_timer(struct kvm_vcpu *vcpu)
-{
-       struct kvm_pit *pit = vcpu->kvm->arch.vpit;
-
-       if (pit && kvm_vcpu_is_bsp(vcpu) && pit->pit_state.irq_ack)
-               return atomic_read(&pit->pit_state.pit_timer.pending);
-       return 0;
-}
-
 static void kvm_pit_ack_irq(struct kvm_irq_ack_notifier *kian)
 {
        struct kvm_kpit_state *ps = container_of(kian, struct kvm_kpit_state,
@@ -697,6 +688,7 @@ struct kvm_pit *kvm_create_pit(struct kvm *kvm, u32 flags)
        pit->wq = create_singlethread_workqueue("kvm-pit-wq");
        if (!pit->wq) {
                mutex_unlock(&pit->pit_state.lock);
+               kvm_free_irq_source_id(kvm, pit->irq_source_id);
                kfree(pit);
                return NULL;
        }
@@ -742,7 +734,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;
 }