Re: [PATCH v19 03/10] PCI: endpoint: pci-ep-msi: Add MSI address/data pair mutable check
From: Manivannan Sadhasivam
Date: Wed Jul 02 2025 - 11:03:36 EST
On Wed, Jul 02, 2025 at 10:42:43AM GMT, Frank Li wrote:
> On Wed, Jul 02, 2025 at 05:00:23PM +0530, Manivannan Sadhasivam wrote:
> > On Mon, Jun 09, 2025 at 12:34:15PM GMT, Frank Li wrote:
> > > Some MSI controller change address/data pair when irq_set_affinity().
> > > Current PCI endpoint can't support this type MSI controller. Call
> > > irq_domain_is_msi_immutable() check if address/data pair immutable.
> > >
> > > Signed-off-by: Frank Li <Frank.Li@xxxxxxx>
> > > ---
> > > change in v18
> > > - update commit message. remove 'include/linux/msi.h' part.
> > >
> > > change from v14 to v17
> > > - none
> > >
> > > change from v13 to v14
> > > - bring v10 back
> > >
> > > Change from v9 to v10
> > > - new patch
> > > ---
> > > drivers/pci/endpoint/pci-ep-msi.c | 8 ++++++++
> > > 1 file changed, 8 insertions(+)
> > >
> > > diff --git a/drivers/pci/endpoint/pci-ep-msi.c b/drivers/pci/endpoint/pci-ep-msi.c
> > > index 549b55b864d0e..c0e2d806ee658 100644
> > > --- a/drivers/pci/endpoint/pci-ep-msi.c
> > > +++ b/drivers/pci/endpoint/pci-ep-msi.c
> > > @@ -44,6 +44,14 @@ int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 num_db)
> > >
> > > dev_set_msi_domain(dev, dom);
> > >
> > > + if (!irq_domain_is_msi_parent(dom))
> > > + return -EINVAL;
> >
> > This check is not justified in commit message.
> >
> > > +
> > > + if (!irq_domain_is_msi_immutable(dom)) {
> > > + dev_err(dev, "Can't support mutable address/data pair MSI controller\n");
> > > + return -EINVAL;
> >
> > GICv3 ITS is an immutable MSI controller. From the earlier patches, I could see
> > that you have tested this series with ITS. How did that happen if it errors out
> > here?
>
> I removed IMMUTASBLE flags in ITS driver to check if go to this error branch.
>
Sorry, I misread the check and got confused by the error message. Presence of
IMMUTABLE flag is required by this driver, which is fine. Please reword the
error message to,
"MSI controller not supported\n"
If one bothers to check why, the !irq_domain_is_msi_immutable() check is self
explanatory.
- Mani
--
மணிவண்ணன் சதாசிவம்