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?
- Mani