genirq: Fix misplaced status update in irq_disable()
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>
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 1d3e25e..b514565 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -199,8 +199,8 @@
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