Reviewed-by: Glenn Miles <mil...@linux.ibm.com>
On Mon, 2025-05-12 at 13:10 +1000, Nicholas Piggin wrote:
> Group interrupts should not be taken from the backlog and presented
> if they are precluded by CPPR.
>
> Fixes: 855434b3b8 ("ppc/xive2: Process group backlog when pushing an OS
> context")
> Signed-off-by: Nicholas Piggin <npig...@gmail.com>
> ---
> hw/intc/xive2.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/hw/intc/xive2.c b/hw/intc/xive2.c
> index 1971c05fa1..8ede95b671 100644
> --- a/hw/intc/xive2.c
> +++ b/hw/intc/xive2.c
> @@ -845,7 +845,9 @@ static void xive2_tctx_need_resend(Xive2Router *xrtr,
> XiveTCTX *tctx,
> group_prio = xive2_presenter_backlog_scan(xptr, nvp_blk, nvp_idx,
> first_group, &group_level);
> regs[TM_LSMFB] = group_prio;
> - if (regs[TM_LGS] && group_prio < backlog_prio) {
> + if (regs[TM_LGS] && group_prio < backlog_prio &&
> + group_prio < regs[TM_CPPR]) {
> +
> /* VP can take a group interrupt */
> xive2_presenter_backlog_decr(xptr, nvp_blk, nvp_idx,
> group_prio, group_level);