diff options
| -rw-r--r-- | arch/i386/kernel/irq.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/i386/kernel/irq.c b/arch/i386/kernel/irq.c index b283b5c0c8b1..ac767766b6d7 100644 --- a/arch/i386/kernel/irq.c +++ b/arch/i386/kernel/irq.c @@ -380,8 +380,9 @@ asmlinkage unsigned int do_IRQ(struct pt_regs regs) break; desc->status &= ~IRQ_PENDING; } -out: desc->status &= ~IRQ_INPROGRESS; + +out: /* * The ->end() handler has to deal with interrupts which got * disabled while the handler was running. @@ -768,7 +769,7 @@ int setup_irq(unsigned int irq, struct irqaction * new) if (!shared) { desc->depth = 0; - desc->status &= ~(IRQ_DISABLED | IRQ_AUTODETECT | IRQ_WAITING); + desc->status &= ~(IRQ_DISABLED | IRQ_AUTODETECT | IRQ_WAITING | IRQ_INPROGRESS); desc->handler->startup(irq); } spin_unlock_irqrestore(&desc->lock,flags); |
