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