]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
x86, irq: Move irq_remapped() check into free_remapped_irq
authorJoerg Roedel <joro@8bytes.org>
Wed, 26 Sep 2012 10:44:47 +0000 (12:44 +0200)
committerJoerg Roedel <joro@8bytes.org>
Mon, 28 Jan 2013 11:17:27 +0000 (12:17 +0100)
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>
arch/x86/kernel/apic/io_apic.c
drivers/iommu/irq_remapping.c

index 5b7eb70c143cff35bd75eab8358f6f4c29b84230..110483906dd31666d124a388e3b05504c05a1a7e 100644 (file)
@@ -3003,8 +3003,8 @@ void destroy_irq(unsigned int irq)
 
        irq_set_status_flags(irq, IRQ_NOREQUEST|IRQ_NOPROBE);
 
-       if (irq_remapped(cfg))
-               free_remapped_irq(irq);
+       free_remapped_irq(irq);
+
        raw_spin_lock_irqsave(&vector_lock, flags);
        __clear_irq_vector(irq, cfg);
        raw_spin_unlock_irqrestore(&vector_lock, flags);
index 75afdf43317c27d031e940fdee40e6a4add38677..cff04789e1a3de1d85b663dd69ea113286526340 100644 (file)
@@ -282,10 +282,13 @@ int set_remapped_irq_affinity(struct irq_data *data, const struct cpumask *mask,
 
 void free_remapped_irq(int irq)
 {
+       struct irq_cfg *cfg = irq_get_chip_data(irq);
+
        if (!remap_ops || !remap_ops->free_irq)
                return;
 
-       remap_ops->free_irq(irq);
+       if (irq_remapped(cfg))
+               remap_ops->free_irq(irq);
 }
 
 void compose_remapped_msi_msg(struct pci_dev *pdev,