diff options
author | Joerg Roedel <joro@8bytes.org> | 2012-09-26 06:44:47 -0400 |
---|---|---|
committer | Joerg Roedel <joro@8bytes.org> | 2013-01-28 06:17:27 -0500 |
commit | 11b4a1cc3836ac71a214446d350e923c76012368 (patch) | |
tree | 12619f2037db0a552f1a363e6156d16d1844088e | |
parent | 9f9d39e403faf5e1a22334fe4df96516e4f389a8 (diff) |
x86, irq: Move irq_remapped() check into free_remapped_irq
The function is called unconditionally now in IO-APIC code
removing another irq_remapped() check from x86 core code.
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>
-rw-r--r-- | arch/x86/kernel/apic/io_apic.c | 4 | ||||
-rw-r--r-- | drivers/iommu/irq_remapping.c | 5 |
2 files changed, 6 insertions, 3 deletions
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index 5b7eb70c143c..110483906dd3 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c | |||
@@ -3003,8 +3003,8 @@ void destroy_irq(unsigned int irq) | |||
3003 | 3003 | ||
3004 | irq_set_status_flags(irq, IRQ_NOREQUEST|IRQ_NOPROBE); | 3004 | irq_set_status_flags(irq, IRQ_NOREQUEST|IRQ_NOPROBE); |
3005 | 3005 | ||
3006 | if (irq_remapped(cfg)) | 3006 | free_remapped_irq(irq); |
3007 | free_remapped_irq(irq); | 3007 | |
3008 | raw_spin_lock_irqsave(&vector_lock, flags); | 3008 | raw_spin_lock_irqsave(&vector_lock, flags); |
3009 | __clear_irq_vector(irq, cfg); | 3009 | __clear_irq_vector(irq, cfg); |
3010 | raw_spin_unlock_irqrestore(&vector_lock, flags); | 3010 | raw_spin_unlock_irqrestore(&vector_lock, flags); |
diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c index 75afdf43317c..cff04789e1a3 100644 --- a/drivers/iommu/irq_remapping.c +++ b/drivers/iommu/irq_remapping.c | |||
@@ -282,10 +282,13 @@ int set_remapped_irq_affinity(struct irq_data *data, const struct cpumask *mask, | |||
282 | 282 | ||
283 | void free_remapped_irq(int irq) | 283 | void free_remapped_irq(int irq) |
284 | { | 284 | { |
285 | struct irq_cfg *cfg = irq_get_chip_data(irq); | ||
286 | |||
285 | if (!remap_ops || !remap_ops->free_irq) | 287 | if (!remap_ops || !remap_ops->free_irq) |
286 | return; | 288 | return; |
287 | 289 | ||
288 | remap_ops->free_irq(irq); | 290 | if (irq_remapped(cfg)) |
291 | remap_ops->free_irq(irq); | ||
289 | } | 292 | } |
290 | 293 | ||
291 | void compose_remapped_msi_msg(struct pci_dev *pdev, | 294 | void compose_remapped_msi_msg(struct pci_dev *pdev, |