Thomas Gleixner
ae24e28fef
PCI/MSI: Use msi_on_each_desc()
...
Use the new iterator functions which pave the way for dynamically extending
MSI-X vectors.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211206210748.142603657@linutronix.de
2021-12-16 22:22:18 +01:00
Thomas Gleixner
9fb9eb4b59
PCI/MSI: Let core code free MSI descriptors
...
Set the domain info flag which tells the core code to free the MSI
descriptors from msi_domain_free_irqs() and add an explicit call to the
core function into the legacy code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211206210748.089085131@linutronix.de
2021-12-16 22:22:17 +01:00
Thomas Gleixner
5512c5eaf5
PCI/MSI: Protect MSI operations
...
To prepare for dynamic extension of MSI-X vectors, protect the MSI
operations for MSI and MSI-X. This requires to move the invocation of
irq_create_affinity_masks() out of the descriptor lock section to avoid
reverse lock ordering vs. CPU hotplug lock as some callers of the PCI/MSI
allocation interfaces already hold it.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211206210747.982292705@linutronix.de
2021-12-16 22:22:17 +01:00
Thomas Gleixner
7a823443e9
PCI/MSI: Provide MSI_FLAG_MSIX_CONTIGUOUS
...
Provide a domain info flag which makes the core code check for a contiguous
MSI-X index on allocation. That's simpler than checking it at some other
domain callback in architecture code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211210221814.662401116@linutronix.de
2021-12-16 22:16:40 +01:00
Thomas Gleixner
173ffad79d
PCI/MSI: Use msi_desc::msi_index
...
The usage of msi_desc::pci::entry_nr is confusing at best. It's the index
into the MSI[X] descriptor table.
Use msi_desc::msi_index which is shared between all MSI incarnations
instead of having a PCI specific storage for no value.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211210221814.602911509@linutronix.de
2021-12-16 22:16:40 +01:00
Thomas Gleixner
ffd84485e6
PCI/MSI: Let the irq code handle sysfs groups
...
Set the domain info flag which makes the core code handle sysfs groups and
put an explicit invocation into the legacy code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Michael Kelley <mikelley@microsoft.com >
Tested-by: Nishanth Menon <nm@ti.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211210221814.048612053@linutronix.de
2021-12-16 22:16:39 +01:00
Thomas Gleixner
890337624e
genirq/msi: Handle PCI/MSI allocation fail in core code
...
Get rid of yet another irqdomain callback and let the core code return the
already available information of how many descriptors could be allocated.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Juergen Gross <jgross@suse.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Acked-by: Bjorn Helgaas <bhelgaas@google.com > # PCI
Link: https://lore.kernel.org/r/20211206210225.046615302@linutronix.de
2021-12-09 11:52:22 +01:00
Thomas Gleixner
57ce3a3c99
PCI/MSI: Make pci_msi_domain_check_cap() static
...
No users outside of that file.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Juergen Gross <jgross@suse.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211206210224.980989243@linutronix.de
2021-12-09 11:52:22 +01:00
Thomas Gleixner
aa423ac422
PCI/MSI: Split out irqdomain code
...
Move the irqdomain specific code into its own file.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Juergen Gross <jgross@suse.com >
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Acked-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20211206210224.817754783@linutronix.de
2021-12-09 11:52:22 +01:00