summaryrefslogtreecommitdiffstats
path: root/kernel/irq
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-02-21 12:54:34 +0100
committerThomas Gleixner <tglx@linutronix.de>2011-02-21 21:19:59 +0100
commita61d825808a0ce9935afebc225dcd602d5339e14 (patch)
tree136d068ca3a58c9d6d3d28786a246c1204452c8c /kernel/irq
parentgenirq: Implement irq_data based move_*_irq() versions (diff)
downloadlinux-a61d825808a0ce9935afebc225dcd602d5339e14.tar.xz
linux-a61d825808a0ce9935afebc225dcd602d5339e14.zip
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>
Diffstat (limited to 'kernel/irq')
-rw-r--r--kernel/irq/chip.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 1d3e25e68b0c..b5145654855f 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -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