aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/include/asm/kvm_host.h3
-rw-r--r--arch/ia64/kvm/kvm-ia64.c8
2 files changed, 8 insertions, 3 deletions
diff --git a/arch/ia64/include/asm/kvm_host.h b/arch/ia64/include/asm/kvm_host.h
index 85db124d37f6..04c0b88f7b3a 100644
--- a/arch/ia64/include/asm/kvm_host.h
+++ b/arch/ia64/include/asm/kvm_host.h
@@ -417,6 +417,9 @@ struct kvm_arch {
417 struct list_head assigned_dev_head; 417 struct list_head assigned_dev_head;
418 struct dmar_domain *intel_iommu_domain; 418 struct dmar_domain *intel_iommu_domain;
419 struct hlist_head irq_ack_notifier_list; 419 struct hlist_head irq_ack_notifier_list;
420
421 unsigned long irq_sources_bitmap;
422 unsigned long irq_states[KVM_IOAPIC_NUM_PINS];
420}; 423};
421 424
422union cpuid3_t { 425union cpuid3_t {
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index a312c9e9b9ef..8a2b13ff0aff 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -778,6 +778,9 @@ static void kvm_init_vm(struct kvm *kvm)
778 kvm_build_io_pmt(kvm); 778 kvm_build_io_pmt(kvm);
779 779
780 INIT_LIST_HEAD(&kvm->arch.assigned_dev_head); 780 INIT_LIST_HEAD(&kvm->arch.assigned_dev_head);
781
782 /* Reserve bit 0 of irq_sources_bitmap for userspace irq source */
783 set_bit(KVM_USERSPACE_IRQ_SOURCE_ID, &kvm->arch.irq_sources_bitmap);
781} 784}
782 785
783struct kvm *kvm_arch_create_vm(void) 786struct kvm *kvm_arch_create_vm(void)
@@ -941,9 +944,8 @@ long kvm_arch_vm_ioctl(struct file *filp,
941 goto out; 944 goto out;
942 if (irqchip_in_kernel(kvm)) { 945 if (irqchip_in_kernel(kvm)) {
943 mutex_lock(&kvm->lock); 946 mutex_lock(&kvm->lock);
944 kvm_ioapic_set_irq(kvm->arch.vioapic, 947 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID,
945 irq_event.irq, 948 irq_event.irq, irq_event.level);
946 irq_event.level);
947 mutex_unlock(&kvm->lock); 949 mutex_unlock(&kvm->lock);
948 r = 0; 950 r = 0;
949 } 951 }