[PATCH v12 5/9] PCI: endpoint: pci-ep-msi: Add check for MSI address/data pair immutability
Frank Li
Frank.Li at nxp.com
Wed Dec 11 12:57:33 PST 2024
Check the immutability of the MSI address/data pair by calling
irq_domain_is_msi_immutable() when allocating a doorbell.
Prevent the use of MSI controllers that change the address/data pair during
irq_set_affinity(), as the current PCI endpoint implementation does not
support such behavior.
Signed-off-by: Frank Li <Frank.Li at nxp.com>
---
Change from v11 to v12
- use helper function irq_domain_is_msi_immutable().
- remove msi parent check.
- split msi header, its and endpoint to 3 patches.
- rework commit message.
Change from v9 to v11
- new patch
---
drivers/pci/endpoint/pci-ep-msi.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/pci/endpoint/pci-ep-msi.c b/drivers/pci/endpoint/pci-ep-msi.c
index b0a91fde202f3..eda027b734b73 100644
--- a/drivers/pci/endpoint/pci-ep-msi.c
+++ b/drivers/pci/endpoint/pci-ep-msi.c
@@ -107,6 +107,11 @@ int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 num_db)
return -EINVAL;
}
+ if (!irq_domain_is_msi_immutable(dom)) {
+ dev_err(dev, "Can't support mutable address/data pair MSI controller\n");
+ return -EINVAL;
+ }
+
dev_set_msi_domain(dev, dom);
msg = kcalloc(num_db, sizeof(struct pci_epf_doorbell_msg), GFP_KERNEL);
--
2.34.1
More information about the linux-arm-kernel
mailing list