diff options
| -rw-r--r-- | include/linux/kvm_host.h | 12 | ||||
| -rw-r--r-- | virt/kvm/eventfd.c | 6 | 
2 files changed, 17 insertions, 1 deletions
| diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 8e5c7b65165..c823e47c364 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h @@ -900,10 +900,20 @@ static inline void kvm_free_irq_routing(struct kvm *kvm) {}  #ifdef CONFIG_HAVE_KVM_EVENTFD  void kvm_eventfd_init(struct kvm *kvm); +int kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args); + +#ifdef CONFIG_HAVE_KVM_IRQCHIP  int kvm_irqfd(struct kvm *kvm, struct kvm_irqfd *args);  void kvm_irqfd_release(struct kvm *kvm);  void kvm_irq_routing_update(struct kvm *, struct kvm_irq_routing_table *); -int kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args); +#else +static inline int kvm_irqfd(struct kvm *kvm, struct kvm_irqfd *args) +{ +	return -EINVAL; +} + +static inline void kvm_irqfd_release(struct kvm *kvm) {} +#endif  #else diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c index 9718e98d6d2..d7424c8c138 100644 --- a/virt/kvm/eventfd.c +++ b/virt/kvm/eventfd.c @@ -35,6 +35,7 @@  #include "iodev.h" +#ifdef __KVM_HAVE_IOAPIC  /*   * --------------------------------------------------------------------   * irqfd: Allows an fd to be used to inject an interrupt to the guest @@ -425,17 +426,21 @@ fail:  	kfree(irqfd);  	return ret;  } +#endif  void  kvm_eventfd_init(struct kvm *kvm)  { +#ifdef __KVM_HAVE_IOAPIC  	spin_lock_init(&kvm->irqfds.lock);  	INIT_LIST_HEAD(&kvm->irqfds.items);  	INIT_LIST_HEAD(&kvm->irqfds.resampler_list);  	mutex_init(&kvm->irqfds.resampler_lock); +#endif  	INIT_LIST_HEAD(&kvm->ioeventfds);  } +#ifdef __KVM_HAVE_IOAPIC  /*   * shutdown any irqfd's that match fd+gsi   */ @@ -555,6 +560,7 @@ static void __exit irqfd_module_exit(void)  module_init(irqfd_module_init);  module_exit(irqfd_module_exit); +#endif  /*   * -------------------------------------------------------------------- | 
