Hi Cédric,

> -----Original Message-----
> From: Cédric Le Goater <c...@kaod.org>
> Sent: Thursday, March 20, 2025 11:29 PM
> To: Steven Lee <steven_...@aspeedtech.com>; Peter Maydell
> <peter.mayd...@linaro.org>; Troy Lee <leet...@gmail.com>; Jamin Lin
> <jamin_...@aspeedtech.com>; Andrew Jeffery
> <and...@codeconstruct.com.au>; Joel Stanley <j...@jms.id.au>; open
> list:ASPEED BMCs <qemu-...@nongnu.org>; open list:All patches CC here
> <qemu-devel@nongnu.org>
> Cc: Troy Lee <troy_...@aspeedtech.com>; long...@lenovo.com; Yunlin Tang
> <yunlin.t...@aspeedtech.com>
> Subject: Re: [PATCH 1/1] hw/intc/aspeed: Fix IRQ handler mask check
> 
> Hello Steven,
> 
> On 3/20/25 10:25, Steven Lee wrote:
> > Updated the IRQ handler mask check to AND with select variable.
> > This ensures that the interrupt service routine is correctly triggered
> > for the interrupts within the same irq group.
> >
> > For example, both `eth0` and the debug UART are handled in `GICINT132`.
> > Without this fix, the debug console may hang if the `eth0` ISR is not
> > handled.
> >
> > Signed-off-by: Steven Lee <steven_...@aspeedtech.com>
> > Change-Id: Ic3609eb72218dfd68be6057d78b8953b18828709
> > ---
> 
> I think the issue was introduced by the initial commit :
> 
>    d831c5fd8682 ("aspeed/intc: Add AST2700 support")
> 
> Is that correct ?
> 

Yes, and the implementation is based on commit 38ba38d (hw/intc/aspeed: Add 
Support for AST2700 INTCIO Controller).

Additionally, I sent a patch series for AST27x0 multi-SoC support on March 
13th. However, I forgot to append the v2 tag to the series. Should I resend it 
with the correct version tag?

Patchwork link:
https://patchwork.kernel.org/project/qemu-devel/list/?series=943379

Thanks,
Steven

> Reviewed-by: Cédric Le Goater <c...@redhat.com>
> 
> Thanks,
> 
> C.
> 
> 
> >   hw/intc/aspeed_intc.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/hw/intc/aspeed_intc.c b/hw/intc/aspeed_intc.c index
> > 3fd417084f..f17bf43925 100644
> > --- a/hw/intc/aspeed_intc.c
> > +++ b/hw/intc/aspeed_intc.c
> > @@ -111,7 +111,7 @@ static void
> aspeed_intc_set_irq_handler(AspeedINTCState *s,
> >       outpin_idx = intc_irq->outpin_idx;
> >       inpin_idx = intc_irq->inpin_idx;
> >
> > -    if (s->mask[inpin_idx] || s->regs[status_reg]) {
> > +    if ((s->mask[inpin_idx] & select) || (s->regs[status_reg] &
> > + select)) {
> >           /*
> >            * a. mask is not 0 means in ISR mode
> >            * sources interrupt routine are executing.

Reply via email to