浏览代码

[POWERPC] Fix spurious vectors on weird MPIC

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>
Josh Boyer 18 年之前
父节点
当前提交
5cddd2e355
共有 1 个文件被更改,包括 4 次插入1 次删除
  1. 4 1
      arch/powerpc/sysdev/mpic.c

+ 4 - 1
arch/powerpc/sysdev/mpic.c

@@ -1333,8 +1333,11 @@ unsigned int mpic_get_one_irq(struct mpic *mpic)
 #ifdef DEBUG_LOW
 #ifdef DEBUG_LOW
 	DBG("%s: get_one_irq(): %d\n", mpic->name, src);
 	DBG("%s: get_one_irq(): %d\n", mpic->name, src);
 #endif
 #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 NO_IRQ;
+	}
 	return irq_linear_revmap(mpic->irqhost, src);
 	return irq_linear_revmap(mpic->irqhost, src);
 }
 }