提交 7f1c410d 编写于 作者: B Benjamin Herrenschmidt 提交者: Michael Ellerman

powerpc/xive: Add interrupt flag to disable automatic EOI

This will be used by KVM in order to keep escalation interrupts
in the non-EOI (masked) state after they fire. They will be
re-enabled directly in HW by KVM when needed.
Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
上级 12c1f339
...@@ -58,6 +58,9 @@ struct xive_irq_data { ...@@ -58,6 +58,9 @@ struct xive_irq_data {
#define XIVE_IRQ_FLAG_EOI_FW 0x10 #define XIVE_IRQ_FLAG_EOI_FW 0x10
#define XIVE_IRQ_FLAG_H_INT_ESB 0x20 #define XIVE_IRQ_FLAG_H_INT_ESB 0x20
/* Special flag set by KVM for excalation interrupts */
#define XIVE_IRQ_NO_EOI 0x80
#define XIVE_INVALID_CHIP_ID -1 #define XIVE_INVALID_CHIP_ID -1
/* A queue tracking structure in a CPU */ /* A queue tracking structure in a CPU */
......
...@@ -367,7 +367,8 @@ static void xive_irq_eoi(struct irq_data *d) ...@@ -367,7 +367,8 @@ static void xive_irq_eoi(struct irq_data *d)
* EOI the source if it hasn't been disabled and hasn't * EOI the source if it hasn't been disabled and hasn't
* been passed-through to a KVM guest * been passed-through to a KVM guest
*/ */
if (!irqd_irq_disabled(d) && !irqd_is_forwarded_to_vcpu(d)) if (!irqd_irq_disabled(d) && !irqd_is_forwarded_to_vcpu(d) &&
!(xd->flags & XIVE_IRQ_NO_EOI))
xive_do_source_eoi(irqd_to_hwirq(d), xd); xive_do_source_eoi(irqd_to_hwirq(d), xd);
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册