[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250827004719.GA2519033@ax162>
Date: Tue, 26 Aug 2025 17:47:19 -0700
From: Nathan Chancellor <nathan@...nel.org>
To: Inochi Amaoto <inochiama@...il.com>
Cc: Anders Roxell <anders.roxell@...aro.org>, regressions@...ts.linux.dev,
linux-next@...r.kernel.org, Thomas Gleixner <tglx@...utronix.de>,
Bjorn Helgaas <bhelgaas@...gle.com>, Marc Zyngier <maz@...nel.org>,
Lorenzo Pieralisi <lpieralisi@...nel.org>,
Shradha Gupta <shradhagupta@...ux.microsoft.com>,
Haiyang Zhang <haiyangz@...rosoft.com>,
Jonathan Cameron <Jonathan.Cameron@...ei.com>,
Juergen Gross <jgross@...e.com>, Nicolin Chen <nicolinc@...dia.com>,
Jason Gunthorpe <jgg@...pe.ca>,
Chen Wang <unicorn_wang@...look.com>, linux-kernel@...r.kernel.org,
linux-pci@...r.kernel.org, Yixun Lan <dlan@...too.org>,
Longbin Li <looong.bin@...il.com>, arnd@...db.de,
dan.carpenter@...aro.org, naresh.kamboju@...aro.org,
benjamin.copeland@...aro.org
Subject: Re: [PATCH v2 2/4] PCI/MSI: Add startup/shutdown for per device
domains
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@...nel.org>
> ---
> 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;
> }
>
Powered by blists - more mailing lists