summaryrefslogtreecommitdiff
path: root/drivers/iommu/irq_remapping.c
diff options
context:
space:
mode:
authorJoerg Roedel <joro@8bytes.org>2012-09-26 12:44:39 +0200
committerJoerg Roedel <joro@8bytes.org>2013-01-28 12:17:26 +0100
commit373dd7a27f2469020e7b56744cf47b82986b9749 (patch)
tree1fb77f5d3b11ad5d2c97c1244e1460cabb94593a /drivers/iommu/irq_remapping.c
parent5afba62cc8a16716508605e02c1b02ee5f969184 (diff)
downloadlwn-373dd7a27f2469020e7b56744cf47b82986b9749.tar.gz
lwn-373dd7a27f2469020e7b56744cf47b82986b9749.zip
x86, io_apic: Introduce set_affinity function pointer
With interrupt remapping a special function is used to change the affinity of an IO-APIC interrupt. Abstract this with a function pointer. 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.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c
index 20f04b67efd2..67b243c6c4e9 100644
--- a/drivers/iommu/irq_remapping.c
+++ b/drivers/iommu/irq_remapping.c
@@ -26,6 +26,9 @@ static struct irq_remap_ops *remap_ops;
static int msi_alloc_remapped_irq(struct pci_dev *pdev, int irq, int nvec);
static int msi_setup_remapped_irq(struct pci_dev *pdev, unsigned int irq,
int index, int sub_handle);
+static int set_remapped_irq_affinity(struct irq_data *data,
+ const struct cpumask *mask,
+ bool force);
static void irq_remapping_disable_io_apic(void)
{
@@ -142,6 +145,7 @@ static int irq_remapping_setup_msi_irqs(struct pci_dev *dev,
static void __init irq_remapping_modify_x86_ops(void)
{
x86_io_apic_ops.disable = irq_remapping_disable_io_apic;
+ x86_io_apic_ops.set_affinity = set_remapped_irq_affinity;
x86_msi.setup_msi_irqs = irq_remapping_setup_msi_irqs;
x86_msi.setup_hpet_msi = setup_hpet_msi_remapped;
}