|
@@ -297,18 +297,13 @@ handle_simple_irq(unsigned int irq, struct irq_desc *desc)
|
|
|
|
|
|
if (unlikely(desc->status & IRQ_INPROGRESS))
|
|
|
goto out_unlock;
|
|
|
+ desc->status &= ~(IRQ_REPLAY | IRQ_WAITING);
|
|
|
kstat_cpu(cpu).irqs[irq]++;
|
|
|
|
|
|
action = desc->action;
|
|
|
- if (unlikely(!action || (desc->status & IRQ_DISABLED))) {
|
|
|
- if (desc->chip->mask)
|
|
|
- desc->chip->mask(irq);
|
|
|
- desc->status &= ~(IRQ_REPLAY | IRQ_WAITING);
|
|
|
- desc->status |= IRQ_PENDING;
|
|
|
+ if (unlikely(!action || (desc->status & IRQ_DISABLED)))
|
|
|
goto out_unlock;
|
|
|
- }
|
|
|
|
|
|
- desc->status &= ~(IRQ_REPLAY | IRQ_WAITING | IRQ_PENDING);
|
|
|
desc->status |= IRQ_INPROGRESS;
|
|
|
spin_unlock(&desc->lock);
|
|
|
|