Re: [PATCH v2 2/4] PCI/MSI: Add startup/shutdown for per device domains
From: Naresh Kamboju
Date: Wed Aug 27 2025 - 04:17:40 EST
On Wed, 27 Aug 2025 at 06:17, Nathan Chancellor <nathan@xxxxxxxxxx> wrote:
>
> On Wed, Aug 27, 2025 at 07:28:46AM +0800, Inochi Amaoto wrote:
> > OK, I guess I know why: I have missed one condition for startup.
> >
> > Could you test the following patch? If worked, I will send it as
> > a fix.
>
> Yes, that appears to resolve the issue on one system. I cannot test the
> other at the moment since it is under load.
I have built on top of Linux next-20250826 tag and the qemu-arm64 boot test
pass and LTP smoke test also pass.
>
> Tested-by: Nathan Chancellor <nathan@xxxxxxxxxx>
Tested-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
>
> > ---
> > diff --git a/drivers/pci/msi/irqdomain.c b/drivers/pci/msi/irqdomain.c
> > index e0a800f918e8..b11b7f63f0d6 100644
> > --- a/drivers/pci/msi/irqdomain.c
> > +++ b/drivers/pci/msi/irqdomain.c
> > @@ -154,6 +154,8 @@ static void cond_shutdown_parent(struct irq_data *data)
> >
> > if (unlikely(info->flags & MSI_FLAG_PCI_MSI_STARTUP_PARENT))
> > irq_chip_shutdown_parent(data);
> > + else if (unlikely(info->flags & MSI_FLAG_PCI_MSI_MASK_PARENT))
> > + irq_chip_mask_parent(data);
> > }
> >
> > static unsigned int cond_startup_parent(struct irq_data *data)
> > @@ -162,6 +164,9 @@ static unsigned int cond_startup_parent(struct irq_data *data)
> >
> > if (unlikely(info->flags & MSI_FLAG_PCI_MSI_STARTUP_PARENT))
> > return irq_chip_startup_parent(data);
> > + else if (unlikely(info->flags & MSI_FLAG_PCI_MSI_MASK_PARENT))
> > + irq_chip_unmask_parent(data);
> > +
> > return 0;
> > }
> >