genirq: Fix misplaced status update in irq_disable()
authorThomas Gleixner <tglx@linutronix.de>
Mon, 21 Feb 2011 11:54:34 +0000 (12:54 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 21 Feb 2011 20:19:59 +0000 (21:19 +0100)
We lazy disable interrupt lines, so only mark the line masked, when
the chip provides an irq_disable callback.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/irq/chip.c

index 1d3e25e68b0c91fe972ac02ed2e5946636b87e6a..b5145654855fbe3be4f5588a1318573f15e8bef6 100644 (file)
@@ -199,8 +199,8 @@ void irq_disable(struct irq_desc *desc)
        irq_state_set_disabled(desc);
        if (desc->irq_data.chip->irq_disable) {
                desc->irq_data.chip->irq_disable(&desc->irq_data);
+               irq_state_set_masked(desc);
        }
-       irq_state_set_masked(desc);
 }
 
 #ifndef CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED