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; > > } > >