[POWERPC] Fix spurious vectors on weird MPIC
authorJosh Boyer <jwboyer@linux.vnet.ibm.com>
Mon, 30 Apr 2007 20:38:11 +0000 (06:38 +1000)
committerPaul Mackerras <paulus@samba.org>
Wed, 2 May 2007 10:04:30 +0000 (20:04 +1000)
The weird TSI 10x MPIC needs an EOI after getting a spurious vector.  This
patch uses the existing MPIC_SPV_EOI flag to fix this issue.

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/sysdev/mpic.c

index 0b84b7c..57b1208 100644 (file)
@@ -1333,8 +1333,11 @@ unsigned int mpic_get_one_irq(struct mpic *mpic)
 #ifdef DEBUG_LOW
        DBG("%s: get_one_irq(): %d\n", mpic->name, src);
 #endif
-       if (unlikely(src == mpic->spurious_vec))
+       if (unlikely(src == mpic->spurious_vec)) {
+               if (mpic->flags & MPIC_SPV_EOI)
+                       mpic_eoi(mpic);
                return NO_IRQ;
+       }
        return irq_linear_revmap(mpic->irqhost, src);
 }