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:
parent
370ea4a4b6
commit
203181cebd
2 changed files with 3 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue