summary refs log tree commit diff stats
path: root/hw/intc/xive.c
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2025-05-12 13:10:48 +1000
committerCédric Le Goater <clg@redhat.com>2025-07-21 08:03:53 +0200
commit203181cebdb96283520b496d6eaa49634eb51579 (patch)
treeab58ba4748971a7ac9d13d22439851dc4508d819 /hw/intc/xive.c
parent370ea4a4b6fffc30324fc8f8134483e5a749114d (diff)
downloadfocaccia-qemu-203181cebdb96283520b496d6eaa49634eb51579.tar.gz
focaccia-qemu-203181cebdb96283520b496d6eaa49634eb51579.zip
ppc/xive: Assert group interrupts were redistributed
Add some assertions to try to ensure presented group interrupts do
not get lost without being redistributed, if they become precluded
by CPPR or preempted by a higher priority interrupt.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Glenn Miles <milesg@linux.ibm.com>
Reviewed-by: Michael Kowal <kowal@linux.ibm.com>
Tested-by: Gautam Menghani <gautam@linux.ibm.com>
Link: https://lore.kernel.org/qemu-devel/20250512031100.439842-40-npiggin@gmail.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
Diffstat (limited to 'hw/intc/xive.c')
-rw-r--r--hw/intc/xive.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/intc/xive.c b/hw/intc/xive.c
index 6ad84f93c7..d609d552e8 100644
--- a/hw/intc/xive.c
+++ b/hw/intc/xive.c
@@ -132,6 +132,8 @@ void xive_tctx_pipr_set(XiveTCTX *tctx, uint8_t ring, uint8_t pipr,
     uint8_t *sig_regs = xive_tctx_signal_regs(tctx, ring);
     uint8_t *regs = &tctx->regs[ring];
 
+    g_assert(!xive_nsr_indicates_group_exception(ring, sig_regs[TM_NSR]));
+
     sig_regs[TM_PIPR] = pipr;
 
     if (pipr < sig_regs[TM_CPPR]) {