genirq: Fix misplaced status update in irq_disable()
Thomas Gleixner [Mon, 21 Feb 2011 11:54:34 +0000 (12:54 +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 1d3e25e..b514565 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