|
@@ -147,11 +147,7 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc,
|
|
if (unlikely(irqfixup)) {
|
|
if (unlikely(irqfixup)) {
|
|
/* Don't punish working computers */
|
|
/* Don't punish working computers */
|
|
if ((irqfixup == 2 && irq == 0) || action_ret == IRQ_NONE) {
|
|
if ((irqfixup == 2 && irq == 0) || action_ret == IRQ_NONE) {
|
|
- int ok;
|
|
|
|
-
|
|
|
|
- spin_unlock(&desc->lock);
|
|
|
|
- ok = misrouted_irq(irq);
|
|
|
|
- spin_lock(&desc->lock);
|
|
|
|
|
|
+ int ok = misrouted_irq(irq);
|
|
if (action_ret == IRQ_NONE)
|
|
if (action_ret == IRQ_NONE)
|
|
desc->irqs_unhandled -= ok;
|
|
desc->irqs_unhandled -= ok;
|
|
}
|
|
}
|