Message ID | 20221111122015.631728309@linutronix.de (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | genirq, PCI/MSI: Support for per device MSI and PCI/IMS - Part 1 cleanups | expand |
On Fri, Nov 11, 2022 at 02:55:11PM +0100, Thomas Gleixner wrote: > Similar to PCI multi-MSI reject MSI-X enablement when a irq domain is > attached to the device which does not support MSI-X. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Bjorn Helgaas <bhelgaas@google.com> > --- > drivers/pci/msi/msi.c | 4 ++++ > 1 file changed, 4 insertions(+) > > --- a/drivers/pci/msi/msi.c > +++ b/drivers/pci/msi/msi.c > @@ -760,6 +760,10 @@ int __pci_enable_msix_range(struct pci_d > if (WARN_ON_ONCE(dev->msix_enabled)) > return -EINVAL; > > + /* Check MSI-X early on irq domain enabled architectures */ > + if (!pci_msi_domain_supports(dev, MSI_FLAG_PCI_MSIX, ALLOW_LEGACY)) > + return -ENOTSUPP; > + > if (!pci_msi_supported(dev, nvec) || dev->current_state != PCI_D0) > return -EINVAL; > >
On Fri, Nov 11, 2022 at 02:55:11PM +0100, Thomas Gleixner wrote: > Similar to PCI multi-MSI reject MSI-X enablement when a irq domain is > attached to the device which does not support MSI-X. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > --- > drivers/pci/msi/msi.c | 4 ++++ > 1 file changed, 4 insertions(+) Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Jason
--- a/drivers/pci/msi/msi.c +++ b/drivers/pci/msi/msi.c @@ -760,6 +760,10 @@ int __pci_enable_msix_range(struct pci_d if (WARN_ON_ONCE(dev->msix_enabled)) return -EINVAL; + /* Check MSI-X early on irq domain enabled architectures */ + if (!pci_msi_domain_supports(dev, MSI_FLAG_PCI_MSIX, ALLOW_LEGACY)) + return -ENOTSUPP; + if (!pci_msi_supported(dev, nvec) || dev->current_state != PCI_D0) return -EINVAL;
Similar to PCI multi-MSI reject MSI-X enablement when a irq domain is attached to the device which does not support MSI-X. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- drivers/pci/msi/msi.c | 4 ++++ 1 file changed, 4 insertions(+)