aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/iommu/irq_remapping.c12
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
146void 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
146static void __init irq_remapping_modify_x86_ops(void) 157static 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;