Message ID | 20170315095900.13962-4-benh@kernel.crashing.org |
---|---|
State | Accepted |
Headers | show |
diff --git a/hw/xive.c b/hw/xive.c index bb20cb7..fb18661 100644 --- a/hw/xive.c +++ b/hw/xive.c @@ -3360,12 +3360,10 @@ static int64_t opal_xive_get_irq_info(uint32_t girq, if (s->flags & XIVE_SRC_EOI_PAGE1) { uint64_t p1off = 1ull << (s->esb_shift - 1); eoi_page = mm_base + p1off; - trig_page = mm_base; - } else { - eoi_page = mm_base; - if (!(s->flags & XIVE_SRC_STORE_EOI)) + if (s->flags & XIVE_SRC_TRIGGER_PAGE) trig_page = mm_base; - } + } else + eoi_page = mm_base; if (out_eoi_page) *out_eoi_page = eoi_page;
Otherwise Linux might try to retrigger an escalation interrupt when doing an EOI which will checkstop Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> --- hw/xive.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)