KVM: Move irq ack notifier list to arch independent code
Mask irq notifier list is already there. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
e42bba90bf
commit
136bdfeee7
|
@ -475,7 +475,6 @@ struct kvm_arch {
|
||||||
struct list_head assigned_dev_head;
|
struct list_head assigned_dev_head;
|
||||||
struct iommu_domain *iommu_domain;
|
struct iommu_domain *iommu_domain;
|
||||||
int iommu_flags;
|
int iommu_flags;
|
||||||
struct hlist_head irq_ack_notifier_list;
|
|
||||||
|
|
||||||
unsigned long irq_sources_bitmap;
|
unsigned long irq_sources_bitmap;
|
||||||
unsigned long irq_states[KVM_IOAPIC_NUM_PINS];
|
unsigned long irq_states[KVM_IOAPIC_NUM_PINS];
|
||||||
|
|
|
@ -397,7 +397,6 @@ struct kvm_arch{
|
||||||
struct kvm_pic *vpic;
|
struct kvm_pic *vpic;
|
||||||
struct kvm_ioapic *vioapic;
|
struct kvm_ioapic *vioapic;
|
||||||
struct kvm_pit *vpit;
|
struct kvm_pit *vpit;
|
||||||
struct hlist_head irq_ack_notifier_list;
|
|
||||||
int vapics_in_nmi_mode;
|
int vapics_in_nmi_mode;
|
||||||
|
|
||||||
unsigned int tss_addr;
|
unsigned int tss_addr;
|
||||||
|
|
|
@ -187,6 +187,7 @@ struct kvm {
|
||||||
#ifdef CONFIG_HAVE_KVM_IRQCHIP
|
#ifdef CONFIG_HAVE_KVM_IRQCHIP
|
||||||
struct kvm_irq_routing_table *irq_routing;
|
struct kvm_irq_routing_table *irq_routing;
|
||||||
struct hlist_head mask_notifier_list;
|
struct hlist_head mask_notifier_list;
|
||||||
|
struct hlist_head irq_ack_notifier_list;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef KVM_ARCH_WANT_MMU_NOTIFIER
|
#ifdef KVM_ARCH_WANT_MMU_NOTIFIER
|
||||||
|
|
|
@ -186,8 +186,7 @@ void kvm_notify_acked_irq(struct kvm *kvm, unsigned irqchip, unsigned pin)
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
|
|
||||||
if (gsi != -1)
|
if (gsi != -1)
|
||||||
hlist_for_each_entry(kian, n, &kvm->arch.irq_ack_notifier_list,
|
hlist_for_each_entry(kian, n, &kvm->irq_ack_notifier_list, link)
|
||||||
link)
|
|
||||||
if (kian->gsi == gsi)
|
if (kian->gsi == gsi)
|
||||||
kian->irq_acked(kian);
|
kian->irq_acked(kian);
|
||||||
}
|
}
|
||||||
|
@ -196,7 +195,7 @@ void kvm_register_irq_ack_notifier(struct kvm *kvm,
|
||||||
struct kvm_irq_ack_notifier *kian)
|
struct kvm_irq_ack_notifier *kian)
|
||||||
{
|
{
|
||||||
mutex_lock(&kvm->irq_lock);
|
mutex_lock(&kvm->irq_lock);
|
||||||
hlist_add_head(&kian->link, &kvm->arch.irq_ack_notifier_list);
|
hlist_add_head(&kian->link, &kvm->irq_ack_notifier_list);
|
||||||
mutex_unlock(&kvm->irq_lock);
|
mutex_unlock(&kvm->irq_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -958,6 +958,7 @@ static struct kvm *kvm_create_vm(void)
|
||||||
goto out;
|
goto out;
|
||||||
#ifdef CONFIG_HAVE_KVM_IRQCHIP
|
#ifdef CONFIG_HAVE_KVM_IRQCHIP
|
||||||
INIT_HLIST_HEAD(&kvm->mask_notifier_list);
|
INIT_HLIST_HEAD(&kvm->mask_notifier_list);
|
||||||
|
INIT_HLIST_HEAD(&kvm->irq_ack_notifier_list);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef KVM_COALESCED_MMIO_PAGE_OFFSET
|
#ifdef KVM_COALESCED_MMIO_PAGE_OFFSET
|
||||||
|
|
Loading…
Reference in New Issue