On 5/11/2025 10:10 PM, Nicholas Piggin wrote:
If CPPR is lowered to preclude the pending interrupt, NSR should be
cleared and the qemu_irq should be lowered. This avoids some cases
of supurious interrupts.

Reviewed-by: Michael Kowal <ko...@linux.ibm.com>

Thanks MAK



Signed-off-by: Nicholas Piggin <npig...@gmail.com>
---
  hw/intc/xive.c | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/hw/intc/xive.c b/hw/intc/xive.c
index cebe409a1a..6293ea4361 100644
--- a/hw/intc/xive.c
+++ b/hw/intc/xive.c
@@ -110,6 +110,9 @@ void xive_tctx_notify(XiveTCTX *tctx, uint8_t ring, uint8_t 
group_level)
                                 regs[TM_IPB], alt_regs[TM_PIPR],
                                 alt_regs[TM_CPPR], alt_regs[TM_NSR]);
          qemu_irq_raise(xive_tctx_output(tctx, ring));
+    } else {
+        alt_regs[TM_NSR] = 0;
+        qemu_irq_lower(xive_tctx_output(tctx, ring));
      }
  }

Reply via email to