From 37b86d3c2d646e12daef07e78f2649d151f0d3ff Mon Sep 17 00:00:00 2001 From: Pavel Emelianov Date: Fri, 10 Nov 2006 12:27:56 -0800 Subject: [PATCH] --- yaml --- r: 40847 b: refs/heads/master c: f72fa707604c015a6625e80f269506032d5430dc h: refs/heads/master i: 40845: 1795e23e3a5d00477658129df2d01a0a3ead1096 40843: ff413590d706a2133c6012d7ddd1efb10a61044d 40839: b5498dd8fe0b39d1e9f5b624ad31ea5b95f42862 40831: 562e845289e1513f8fae4dc4ce66a679c5af9980 v: v3 --- [refs] | 2 +- trunk/kernel/irq/spurious.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index f3d57279a146..090702f5328b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0130b0b32ee53dc7add773fcea984f6a26ef1da3 +refs/heads/master: f72fa707604c015a6625e80f269506032d5430dc diff --git a/trunk/kernel/irq/spurious.c b/trunk/kernel/irq/spurious.c index 543ea2e5ad93..9c7e2e4c1fe7 100644 --- a/trunk/kernel/irq/spurious.c +++ b/trunk/kernel/irq/spurious.c @@ -147,7 +147,11 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc, if (unlikely(irqfixup)) { /* Don't punish working computers */ if ((irqfixup == 2 && irq == 0) || action_ret == IRQ_NONE) { - int ok = misrouted_irq(irq); + int ok; + + spin_unlock(&desc->lock); + ok = misrouted_irq(irq); + spin_lock(&desc->lock); if (action_ret == IRQ_NONE) desc->irqs_unhandled -= ok; }