diff options
Diffstat (limited to 'drivers')
| -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; |
