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

From: Vasily Gorbik
Date: Sat Sep 26 2020 - 08:39:49 EST


On Fri, Sep 25, 2020 at 09:54:52AM -0400, Qian Cai wrote:
> On Wed, 2020-08-26 at 13:17 +0200, Thomas Gleixner wrote:
> > From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> >
> > 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@xxxxxxxxxxxxx>
>
> Today's linux-next will have some warnings on s390x:
>
> .config: https://gitlab.com/cailca/linux-mm/-/blob/master/s390.config
>
> WARNING: unmet direct dependencies detected for PCI_MSI_ARCH_FALLBACKS
> Depends on [n]: PCI [=n]
> Selected by [y]:
> - S390 [=y]
>
> WARNING: unmet direct dependencies detected for PCI_MSI_ARCH_FALLBACKS
> Depends on [n]: PCI [=n]
> Selected by [y]:
> - S390 [=y]
>

Yes, as well as on mips and sparc which also don't FORCE_PCI.
This seems to work for s390:

diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index b0b7acf07eb8..41136fbe909b 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -192,3 +192,3 @@ config S390
select PCI_MSI if PCI
- select PCI_MSI_ARCH_FALLBACKS
+ select PCI_MSI_ARCH_FALLBACKS if PCI
select SET_FS