mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
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>
This commit is contained in:
committed by
Cédric Le Goater
parent
370ea4a4b6
commit
203181cebd
@@ -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]) {
|
||||
|
||||
@@ -1089,6 +1089,7 @@ static void xive2_tctx_process_pending(XiveTCTX *tctx, uint8_t sig_ring)
|
||||
int rc;
|
||||
|
||||
g_assert(sig_ring == TM_QW3_HV_PHYS || sig_ring == TM_QW1_OS);
|
||||
g_assert(!xive_nsr_indicates_group_exception(sig_ring, sig_regs[TM_NSR]));
|
||||
|
||||
/*
|
||||
* Recompute the PIPR based on local pending interrupts. It will
|
||||
|
||||
Reference in New Issue
Block a user