Re: [PATCH v2 2/4] PCI/MSI: Add startup/shutdown for per device domains
From: Nathan Chancellor
Date: Tue Aug 26 2025 - 20:47:39 EST
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.
Tested-by: Nathan Chancellor <nathan@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;
> }
>