diff options
author | Joerg Roedel <joro@8bytes.org> | 2012-09-26 06:44:50 -0400 |
---|---|---|
committer | Joerg Roedel <joro@8bytes.org> | 2013-01-28 06:51:52 -0500 |
commit | da165322dfb6cbc50042b1051f07b837a26f3bb8 (patch) | |
tree | 141443ee5f9bff4ba3bcf290944bcab7487f5934 /drivers/iommu/irq_remapping.c | |
parent | 7601384f91be1a5ea60cb4ef6e28cad628e6cd1e (diff) |
x86, io_apic: Introduce eoi_ioapic_pin call-back
This callback replaces the old __eoi_ioapic_pin function
which needs a special path for interrupt remapping.
Signed-off-by: Joerg Roedel <joro@8bytes.org>
Acked-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'drivers/iommu/irq_remapping.c')
-rw-r--r-- | drivers/iommu/irq_remapping.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c index 158091b345cb..849ce4ce500b 100644 --- a/drivers/iommu/irq_remapping.c +++ b/drivers/iommu/irq_remapping.c | |||
@@ -143,11 +143,23 @@ static int irq_remapping_setup_msi_irqs(struct pci_dev *dev, | |||
143 | return do_setup_msix_irqs(dev, nvec); | 143 | return do_setup_msix_irqs(dev, nvec); |
144 | } | 144 | } |
145 | 145 | ||
146 | void eoi_ioapic_pin_remapped(int apic, int pin, int vector) | ||
147 | { | ||
148 | /* | ||
149 | * Intr-remapping uses pin number as the virtual vector | ||
150 | * in the RTE. Actual vector is programmed in | ||
151 | * intr-remapping table entry. Hence for the io-apic | ||
152 | * EOI we use the pin number. | ||
153 | */ | ||
154 | io_apic_eoi(apic, pin); | ||
155 | } | ||
156 | |||
146 | static void __init irq_remapping_modify_x86_ops(void) | 157 | static void __init irq_remapping_modify_x86_ops(void) |
147 | { | 158 | { |
148 | x86_io_apic_ops.disable = irq_remapping_disable_io_apic; | 159 | x86_io_apic_ops.disable = irq_remapping_disable_io_apic; |
149 | x86_io_apic_ops.set_affinity = set_remapped_irq_affinity; | 160 | x86_io_apic_ops.set_affinity = set_remapped_irq_affinity; |
150 | x86_io_apic_ops.setup_entry = setup_ioapic_remapped_entry; | 161 | x86_io_apic_ops.setup_entry = setup_ioapic_remapped_entry; |
162 | x86_io_apic_ops.eoi_ioapic_pin = eoi_ioapic_pin_remapped; | ||
151 | x86_msi.setup_msi_irqs = irq_remapping_setup_msi_irqs; | 163 | x86_msi.setup_msi_irqs = irq_remapping_setup_msi_irqs; |
152 | x86_msi.setup_hpet_msi = setup_hpet_msi_remapped; | 164 | x86_msi.setup_hpet_msi = setup_hpet_msi_remapped; |
153 | x86_msi.compose_msi_msg = compose_remapped_msi_msg; | 165 | x86_msi.compose_msi_msg = compose_remapped_msi_msg; |