Looks good. Reviewed-by: Caleb Schlossin <cal...@linux.ibm.com>
On 5/11/25 10:10 PM, Nicholas Piggin wrote: > Pushing a context and loading IPB from NVP is defined to merge ('or') > that IPB into the TIMA IPB register. PIPR should therefore be calculated > based on the final IPB value, not just the NVP value. > > Fixes: 9d2b6058c5b ("ppc/xive2: Add grouping level to notification") > Signed-off-by: Nicholas Piggin <npig...@gmail.com> > --- > hw/intc/xive2.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/hw/intc/xive2.c b/hw/intc/xive2.c > index 790152a2a6..4dd04a0398 100644 > --- a/hw/intc/xive2.c > +++ b/hw/intc/xive2.c > @@ -835,8 +835,9 @@ static void xive2_tctx_need_resend(Xive2Router *xrtr, > XiveTCTX *tctx, > nvp.w2 = xive_set_field32(NVP2_W2_IPB, nvp.w2, 0); > xive2_router_write_nvp(xrtr, nvp_blk, nvp_idx, &nvp, 2); > } > + /* IPB bits in the backlog are merged with the TIMA IPB bits */ > regs[TM_IPB] |= ipb; > - backlog_prio = xive_ipb_to_pipr(ipb); > + backlog_prio = xive_ipb_to_pipr(regs[TM_IPB]); > backlog_level = 0; > > first_group = xive_get_field32(NVP2_W0_PGOFIRST, nvp.w0);