Thread (112 messages) 112 messages, 18 authors, 2023-01-15

Re: [patch V2 34/46] PCI/MSI: Make arch_.*_msi_irq[s] fallbacks selectable

From: Thomas Gleixner <hidden>
Date: 2020-08-28 18:30:03
Also in: linux-iommu, linux-pci, linux-s390, lkml, xen-devel

On Thu, Aug 27 2020 at 13:20, Bjorn Helgaas wrote:
On Wed, Aug 26, 2020 at 01:17:02PM +0200, Thomas Gleixner wrote:
quoted
Make the architectures and drivers which rely on them select them in Kconfig
and if not selected replace them by stub functions which emit a warning and
fail the PCI/MSI interrupt allocation.
Sorry, I really don't understand this, so these are probably stupid
questions.

If CONFIG_PCI_MSI_ARCH_FALLBACKS is defined, we will supply
implementations of:

  arch_setup_msi_irq
  arch_teardown_msi_irq
  arch_setup_msi_irqs
  arch_teardown_msi_irqs
  default_teardown_msi_irqs    # non-weak

You select CONFIG_PCI_MSI_ARCH_FALLBACKS for ia64, mips, powerpc,
s390, sparc, and x86.  I see that all of those arches implement at
least one of the functions above.  But x86 doesn't and I can't figure
out why it needs to select CONFIG_PCI_MSI_ARCH_FALLBACKS.
X86 still has them at that point in the series and the next patch
removes them. I wanted to have the warnings in place before doing so.
I assume there's a way to convert these arches to hierarchical irq
domains so they wouldn't need this at all?  Is there a sample
conversion to look at?
For a quick and dirty step it's pretty much the wrapper I used for XEN
and then make sure that the msi_domain pointer is populated is
pci_device::device.
And I can't figure out what's special about tegra, rcar, and xilinx
that makes them need it as well.
Those are old drivers from the time where ARM did not use hierarchical
irq domains and nobody cared to fix them up.
Is there something I could grep for
to identify them?
git grep arch_setup_msi_irq
git grep arch_teardown_msi_irq
Is there a way to convert them so they don't need it?
Sure, it just needs some work and probably hardware to test.

Thanks,

        tglx
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help