diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-02-04 10:17:52 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-02-19 12:58:11 +0100 |
commit | 3aae994fb0f43f6d94a31c33536a83869504abdf (patch) | |
tree | f928d2067cecfbb89c1133a8b513f84c890f7e9d /kernel/irq/manage.c | |
parent | genirq: Remove default magic (diff) | |
download | linux-3aae994fb0f43f6d94a31c33536a83869504abdf.tar.xz linux-3aae994fb0f43f6d94a31c33536a83869504abdf.zip |
genirq: Consolidate IRQ_DISABLED
Handle IRQ_DISABLED consistent.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r-- | kernel/irq/manage.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 2a6c6ee11a3f..78a566a9b39f 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -329,10 +329,8 @@ void __disable_irq(struct irq_desc *desc, unsigned int irq, bool suspend) desc->status |= IRQ_SUSPENDED; } - if (!desc->depth++) { - desc->status |= IRQ_DISABLED; + if (!desc->depth++) irq_disable(desc); - } } /** @@ -407,12 +405,11 @@ void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume) WARN(1, KERN_WARNING "Unbalanced enable for IRQ %d\n", irq); break; case 1: { - unsigned int status = desc->status & ~IRQ_DISABLED; - if (desc->status & IRQ_SUSPENDED) goto err_out; /* Prevent probing on this irq: */ - desc->status = status | IRQ_NOPROBE; + desc->status |= IRQ_NOPROBE; + irq_enable(desc); check_irq_resend(desc, irq); /* fall-through */ } |