• Thomas Petazzoni's avatar
    x86, build, pci: Fix PCI_MSI build on !SMP · 0dbc6078
    Thomas Petazzoni authored
    Commit ebd97be6 ('PCI: remove ARCH_SUPPORTS_MSI kconfig option')
    removed the ARCH_SUPPORTS_MSI option which architectures could select
    to indicate that they support MSI. Now, all architectures are supposed
    to build fine when MSI support is enabled: instead of having the
    architecture tell *when* MSI support can be used, it's up to the
    architecture code to ensure that MSI support can be enabled.
    
    On x86, commit ebd97be6 removed the following line:
    
      select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
    
    Which meant that MSI support was only available when the local APIC
    and I/O APIC were enabled. While this is always true on SMP or x86-64,
    it is not necessarily the case on i386 !SMP.
    
    The below patch makes sure that the local APIC and I/O APIC support is
    always enabled when MSI support is enabled. To do so, it:
    
     * Ensures the X86_UP_APIC option is not visible when PCI_MSI is
       enabled. This is the option that allows, on UP machines, to enable
       or not the APIC support. It is already not visible on SMP systems,
       or x86-64 systems, for example. We're simply also making it
       invisible on i386 MSI systems.
    
     * Ensures that the X86_LOCAL_APIC and X86_IO_APIC options are 'y'
       when PCI_MSI is enabled.
    
    Notice that this change requires a change in drivers/iommu/Kconfig to
    avoid a recursive Kconfig dependencey. The AMD_IOMMU option selects
    PCI_MSI, but was depending on X86_IO_APIC. This dependency is no
    longer needed: as soon as PCI_MSI is selected, the presence of
    X86_IO_APIC is guaranteed. Moreover, the AMD_IOMMU already depended on
    X86_64, which already guaranteed that X86_IO_APIC was enabled, so this
    dependency was anyway redundant.
    Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Link: http://lkml.kernel.org/r/1380794354-9079-1-git-send-email-thomas.petazzoni@free-electrons.comReported-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Acked-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
    0dbc6078
Kconfig 76.2 KB