On Wed, Nov 16 2022 at 20:22, Jason Gunthorpe wrote: > On Wed, Nov 16, 2022 at 11:38:52PM +0100, Thomas Gleixner wrote: > >> >> +bool pci_setup_msi_device_domain(struct pci_dev *pdev) >> >> +{ >> >> + if (WARN_ON_ONCE(pdev->msix_enabled)) >> >> + return false; >> >> + >> >> + if (pci_match_device_domain(pdev, DOMAIN_BUS_PCI_DEVICE_MSI)) >> >> + return true; >> >> + if (pci_match_device_domain(pdev, DOMAIN_BUS_PCI_DEVICE_MSIX)) >> >> + msi_remove_device_irq_domain(&pdev->dev, MSI_DEFAULT_DOMAIN); >> >> + >> >> + return pci_create_device_domain(pdev, &pci_msi_template, 1); >> > >> > Hardwired to one 1? What about multi-msi? >> >> MSI has exactly ONE descriptor whether it's single or multi-MSI. >> >> Multi-MSI can have several interrupts hanging off the same descriptor, >> but that's not how MSI looks at it because you write ONE message and the >> hardware does the substitution of the low bits depending on which vector >> is raised. > > Okay, that is very clear, maybe this in a comment right here ? Sure.