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@nxp.com
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