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, |
