PCI/MSI: Make arch_.*_msi_irq[s] fallbacks selectable
authorThomas Gleixner <tglx@linutronix.de>
Wed, 26 Aug 2020 11:17:02 +0000 (13:17 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 16 Sep 2020 14:52:37 +0000 (16:52 +0200)
commit077ee78e392869e46ae6bdc6ba2a3c4249d0b5e1
tree023c1687261dd5cd2453506fc8001d8af5410c96
parent2c681e6b37674dc3941869cb262e26c8a6b34047
PCI/MSI: Make arch_.*_msi_irq[s] fallbacks selectable

The arch_.*_msi_irq[s] fallbacks are compiled in whether an architecture
requires them or not. Architectures which are fully utilizing hierarchical
irq domains should never call into that code.

It's not only architectures which depend on that by implementing one or
more of the weak functions, there is also a bunch of drivers which relies
on the weak functions which invoke msi_controller::setup_irq[s] and
msi_controller::teardown_irq.

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.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20200826112333.992429909@linutronix.de
arch/ia64/Kconfig
arch/mips/Kconfig
arch/powerpc/Kconfig
arch/s390/Kconfig
arch/sparc/Kconfig
arch/x86/Kconfig
drivers/pci/Kconfig
drivers/pci/controller/Kconfig
drivers/pci/msi.c
include/linux/msi.h