kernel_optimize_test/arch/sparc/kernel
Thomas Petazzoni a988fb806d sparc: fix MSI build failure on Sparc32
Commit ebd97be635 ('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 4287d824f2 ('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: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reported-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-10-02 20:02:35 -04:00
..
.gitignore
apc.c
asm-offsets.c
audit.c
auxio_32.c
auxio_64.c
btext.c
central.c
cherrs.S
chmc.c
compat_audit.c
cpu.c
cpumap.c support sparc64x chip type in cpumap.c 2013-07-31 19:10:03 -07:00
cpumap.h
devices.c
dma.c
ds.c sparc: fix ldom_reboot buffer overflow harder 2013-10-02 20:01:56 -04:00
dtlb_miss.S
dtlb_prot.S
ebus.c
entry.h sparc: delete __cpuinit/__CPUINIT usage from all users 2013-07-14 19:36:52 -04:00
entry.S sparc32: Fix exit flag passed from traced sys_sigreturn 2013-07-31 19:10:04 -07:00
etrap_32.S
etrap_64.S
fpu_traps.S
ftrace.c
getsetcc.S
head_32.S
head_64.S
helpers.S
hvapi.c
hvcalls.S
hvtramp.S sparc: delete __cpuinit/__CPUINIT usage from all users 2013-07-14 19:36:52 -04:00
idprom.c
iommu_common.h
iommu.c
ioport.c
irq_32.c
irq_64.c sparc: delete __cpuinit/__CPUINIT usage from all users 2013-07-14 19:36:52 -04:00
irq.h
itlb_miss.S
ivec.S
jump_label.c
kernel.h
kgdb_32.c
kgdb_64.c sparc64: cleanup: Rename ret_from_syscall to ret_from_fork 2013-07-31 19:10:04 -07:00
kprobes.c
kstack.h
ktlb.S sparc64: Fix ITLB handler of null page 2013-08-02 17:29:06 -07:00
ldc.c sparc: remove deprecated IRQF_DISABLED 2013-10-02 20:02:35 -04:00
led.c
leon_kernel.c
leon_pci_grpci1.c
leon_pci_grpci2.c
leon_pci.c
leon_pmc.c
leon_smp.c sparc: delete __cpuinit/__CPUINIT usage from all users 2013-07-14 19:36:52 -04:00
Makefile sparc: fix MSI build failure on Sparc32 2013-10-02 20:02:35 -04:00
mdesc.c sparc: delete __cpuinit/__CPUINIT usage from all users 2013-07-14 19:36:52 -04:00
misctrap.S
module.c
nmi.c
of_device_32.c
of_device_64.c
of_device_common.c
of_device_common.h
pci_common.c
pci_fire.c
pci_impl.h
pci_msi.c
pci_psycho.c
pci_sabre.c
pci_schizo.c
pci_sun4v_asm.S
pci_sun4v.c
pci_sun4v.h
pci.c
pcic.c
pcr.c
perf_event.c
pmc.c
power.c
process_32.c
process_64.c
prom_32.c
prom_64.c
prom_common.c
prom_irqtrans.c
prom.h
psycho_common.c
psycho_common.h
ptrace_32.c
ptrace_64.c sparc64: Export flush_ptrace_access() (needed by lustre) 2013-09-05 12:12:51 -07:00
reboot.c
rtrap_32.S
rtrap_64.S
sbus.c
setup_32.c
setup_64.c cpu hw caps support for sparc64x 2013-07-31 19:10:03 -07:00
signal_32.c
signal_64.c
signal32.c
sigutil_32.c
sigutil_64.c
sigutil.h
smp_32.c sparc: delete __cpuinit/__CPUINIT usage from all users 2013-07-14 19:36:52 -04:00
smp_64.c sparc: delete __cpuinit/__CPUINIT usage from all users 2013-07-14 19:36:52 -04:00
sparc_ksyms_32.c
sparc_ksyms_64.c
spiterrs.S
sstate.c
stacktrace.c
starfire.c
sun4d_irq.c
sun4d_smp.c sparc: delete __cpuinit/__CPUINIT usage from all users 2013-07-14 19:36:52 -04:00
sun4m_irq.c
sun4m_smp.c sparc: delete __cpuinit/__CPUINIT usage from all users 2013-07-14 19:36:52 -04:00
sun4v_ivec.S
sun4v_tlb_miss.S
sys_sparc_32.c
sys_sparc_64.c
sys_sparc32.c kernel-wide: fix missing validations on __get/__put/__copy_to/__copy_from_user() 2013-09-11 15:58:18 -07:00
sys32.S
syscalls.S sparc64: Fix not SRA'ed %o5 in 32-bit traced syscall 2013-07-31 19:10:04 -07:00
sysfs.c sparc: delete __cpuinit/__CPUINIT usage from all users 2013-07-14 19:36:52 -04:00
systbls_32.S
systbls_64.S
systbls.h
tadpole.c
time_32.c
time_64.c
trampoline_32.S sparc: delete __cpuinit/__CPUINIT usage from all users 2013-07-14 19:36:52 -04:00
trampoline_64.S sparc64: Fix off by one in trampoline TLB mapping installation loop. 2013-08-22 16:38:46 -07:00
traps_32.c
traps_64.c
tsb.S
ttable_32.S
ttable_64.S
una_asm_32.S
una_asm_64.S
unaligned_32.c
unaligned_64.c
utrap.S
vio.c
viohs.c
visemul.c
vmlinux.lds.S
windows.c
winfixup.S
wof.S
wuf.S