• Thomas Petazzoni's avatar
    sparc: fix MSI build failure on Sparc32 · a988fb80
    Thomas Petazzoni authored
    Commit ebd97be6 ('PCI: remove ARCH_SUPPORTS_MSI kconfig option')
    removes the ARCH_SUPPORTS_MSI Kconfig option that allowed
    architectures to indicate whether they support PCI MSI or not. Now,
    PCI MSI support can be compiled in on any architecture thanks to the
    use of weak functions thanks to 4287d824 ('PCI: use weak functions
    for MSI arch-specific functions').
    
    So, architecture specific code is now responsible to ensure that its
    PCI MSI code builds in all cases, or be appropriately conditionally
    compiled.
    
    On Sparc, the MSI support is only provided for Sparc64, so the
    ARCH_SUPPORTS_MSI kconfig option was only selected for SPARC64, and
    not for the Sparc architecture as a whole. Therefore, removing
    ARCH_SUPPORTS_MSI broke Sparc32 configurations with CONFIG_PCI_MSI=y,
    because the Sparc-specific MSI code is not designed to be built on
    Sparc32.
    
    To solve this, this commit ensures that the Sparc MSI code is only
    built on Sparc64. This is done thanks to a new Kconfig Makefile helper
    option SPARC64_PCI_MSI, modeled after the existing SPARC64_PCI. The
    SPARC64_PCI_MSI option is an hidden option that is true when both
    Sparc64 PCI support is enabled and MSI is enabled. The
    arch/sparc/kernel/pci_msi.c file is now only built when
    SPARC64_PCI_MSI is true.
    Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a988fb80
Kconfig 13.7 KB