linux/arch/arm/kernel
Russell King 7fc150543c ARM: Blacklist GCC 4.8.0 to GCC 4.8.2 - PR58854
These stock GCC versions miscompile the kernel by incorrectly optimising
the function epilogue code - by first increasing the stack pointer, and
then loading entries from below the stack.  This means that an opportune
interrupt or exception will corrupt the current function's saved state,
which may result in the parent function seeing different register
values.

As this bug has been known to result in corrupted filesystems, and these
buggy compiler versions seem to be frequently used, we have little
option but to blacklist these compiler versions.

Distributions may have fixed PR58854, but as their compilers are totally
indistinguishable from the buggy versions, it is unfortunate that this
also results in those also being blacklisted.  Given the filesystem
corruption potential of the original, this is the lesser evil.  People
who want to build with their fixed compiler versions will need to adjust
the kernel source.  (Distros need to think about the implications of
fixing such a compiler bug, and consider how to ensure that their fixed
compiler versions can be detected if they wish to avoid this.)

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2014-10-19 09:20:52 +01:00
..
.gitignore
arch_timer.c arch_timer: Move to generic sched_clock framework 2013-10-09 16:54:10 -07:00
armksyms.c ARM: 8151/1: add missing exports for asm functions required by get_user macro 2014-09-16 16:09:30 +01:00
arthur.c
asm-offsets.c ARM: Blacklist GCC 4.8.0 to GCC 4.8.2 - PR58854 2014-10-19 09:20:52 +01:00
atags_compat.c ARM: 7505/1: split out ATAGS parsing 2012-09-03 22:55:56 +01:00
atags_parse.c ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
atags_proc.c procfs: new helper - PDE_DATA(inode) 2013-04-09 14:13:32 -04:00
atags.h ARM: constify machine_desc structure uses 2013-07-26 14:55:59 +01:00
bios32.c ARM/PCI: Call pcie_bus_configure_settings() to set MPS 2014-05-30 10:50:57 -06:00
calls.S ARM: wire up memfd_create syscall 2014-08-09 14:07:59 +01:00
cpuidle.c cpuidle: Add common time keeping and irq enabling 2012-03-21 01:59:40 -04:00
crash_dump.c ARM: 8012/1: kdump: Avoid overflow when converting pfn to physaddr 2014-04-07 12:10:00 +01:00
debug.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
devtree.c arm: Add devicetree fixup machine function 2014-07-29 21:26:49 -06:00
dma-isa.c
dma.c locking, ARM: Annotate low level hw locks as raw 2011-09-13 11:12:14 +02:00
early_printk.c early_printk: consolidate random copies of identical code 2013-04-29 18:28:13 -07:00
elf.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
entry-armv.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
entry-common.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
entry-header.S ARM: 8129/1: errata: work around Cortex-A15 erratum 830321 using dummy strex 2014-08-27 15:40:13 +01:00
entry-v7m.S ARM: 7890/1: v7-M: drop using mach/entry-macro.S 2013-12-29 12:32:32 +00:00
etm.c ARM: 7905/1: etm: Remove unnecessary amba_set_drvdata() 2013-12-29 12:32:34 +00:00
fiq.c ARM: 7819/1: fiq: Cast the first argument of flush_icache_range() 2013-08-20 00:11:50 +01:00
fiqasm.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
ftrace.c ARM: 8022/1: ftrace: work with CONFIG_DEBUG_SET_MODULE_RONX 2014-04-23 01:24:31 +01:00
head-common.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
head-nommu.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
head.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
hibernate.c ARM: 8011/1: ARM hibernation / suspend-to-disk 2014-04-23 01:24:14 +01:00
hw_breakpoint.c CPU hotplug notifiers registration fixes for 3.15-rc1 2014-04-07 14:55:46 -07:00
hyp-stub.S Here are the PPC and ARM changes for KVM, which I separated because 2014-08-07 11:35:30 -07:00
insn.c ARM: fix missing bug.h include in arch/arm/kernel/insn.c 2012-03-30 11:51:46 +01:00
insn.h ARM: 7334/1: add jump label support 2012-03-24 09:38:56 +00:00
io.c ARM: 7930/1: Introduce atomic MMIO modify 2014-01-28 14:06:25 +00:00
irq.c ARM: 8133/1: use irq_set_affinity with force=false when migrating irqs 2014-09-02 20:55:25 +01:00
isa.c arm: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:15 -07:00
iwmmxt.S Merge branches 'fixes' and 'misc' into for-next 2014-08-05 10:27:13 +01:00
jump_label.c ARM: 7334/1: add jump label support 2012-03-24 09:38:56 +00:00
kgdb.c ARM: 8124/1: don't enter kgdb when userspace executes a kgdb break instruction 2014-08-02 15:20:30 +01:00
kprobes-arm.c ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
kprobes-common.c ARM: probes: fix instruction fetch order with <asm/opcodes.h> 2014-04-01 16:45:19 +03:00
kprobes-test-arm.c ARM: kprobes: Fix test code compilation errors for ARMv4 targets 2014-07-02 12:48:36 +01:00
kprobes-test-thumb.c ARM: kprobes-test: use <asm/opcodes.h> for Thumb instruction building 2014-04-01 16:48:26 +03:00
kprobes-test.c ARM: 8179/1: kprobes-test: Fix compile error "bad immediate value for offset" 2014-09-30 16:55:24 +01:00
kprobes-test.h ARM: 8179/1: kprobes-test: Fix compile error "bad immediate value for offset" 2014-09-30 16:55:24 +01:00
kprobes-thumb.c ARM: probes: fix instruction fetch order with <asm/opcodes.h> 2014-04-01 16:45:19 +03:00
kprobes.c ARM: probes: fix instruction fetch order with <asm/opcodes.h> 2014-04-01 16:45:19 +03:00
kprobes.h ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
machine_kexec.c ARM: 8030/1: ARM : kdump : add arch_crash_save_vmcoreinfo 2014-04-22 22:23:58 +01:00
Makefile Merge branches 'alignment', 'fixes', 'l2c' (early part) and 'misc' into for-next 2014-06-05 12:35:52 +01:00
module.c ARM: 8127/1: module: add support for R_ARM_TARGET1 relocations 2014-08-27 15:40:11 +01:00
opcodes.c ARM: 7206/1: Add generic ARM instruction set condition code checks. 2011-12-13 08:52:02 +00:00
patch.c ARM: 7332/1: extract out code patch function from kprobes 2012-03-24 09:38:55 +00:00
patch.h ARM: 7332/1: extract out code patch function from kprobes 2012-03-24 09:38:55 +00:00
perf_event_cpu.c ARM: 8149/1: perf: Don't sleep while atomic when enabling per-cpu interrupts 2014-09-16 16:09:33 +01:00
perf_event_v6.c arm: perf: clean up PMU names 2014-07-02 15:48:25 +01:00
perf_event_v7.c arm: perf: krait: stop using singleton PMU 2014-07-02 15:48:26 +01:00
perf_event_xscale.c arm: perf: clean up PMU names 2014-07-02 15:48:25 +01:00
perf_event.c Merge branch 'devel-stable' into for-next 2014-08-05 10:27:25 +01:00
perf_regs.c ARM: perf: add support for perf registers API 2013-09-30 16:41:50 +01:00
pj4-cp0.c ARM: 8040/1: pj4: properly detect existence of iWMMXt coprocessor 2014-04-25 12:07:34 +01:00
probes-arm.c ARM: kprobes: Disallow instructions with PC and register specified shift 2014-07-02 12:48:36 +01:00
probes-arm.h ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
probes-thumb.c ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
probes-thumb.h ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
probes.c ARM: probes: fix instruction fetch order with <asm/opcodes.h> 2014-04-01 16:45:19 +03:00
probes.h ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
process.c ARM: 8148/1: flush TLS and thumbee register state during exec 2014-09-16 16:09:32 +01:00
psci_smp.c ARM: Check if a CPU has gone offline 2014-05-15 10:16:30 -04:00
psci.c PSCI: Add initial support for PSCIv0.2 functions 2014-05-15 10:16:00 -04:00
ptrace.c ARM: 8087/1: ptrace: reload syscall number after secure_computing() check 2014-06-29 10:29:35 +01:00
relocate_kernel.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
return_address.c ARM: 7676/1: fix a wrong value returned from CALLER_ADDRn 2013-03-19 11:43:46 +00:00
setup.c ARM: hwcap: disable HWCAP_SWP if the CPU advertises it has exclusives 2014-07-18 12:29:51 +01:00
signal.c ARM: add uprobes support 2014-03-18 16:39:40 -04:00
sigreturn_codes.S ARM: 7895/1: signal: fix armv7-m build issue in sigreturn_codes.S 2013-11-30 22:21:00 +00:00
sleep.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
smp_scu.c ARM: 8122/1: smp_scu: enable SCU standby support 2014-08-02 08:51:53 +01:00
smp_tlb.c ARM: 8111/1: Enable erratum 798181 for Broadcom Brahma-B15 2014-07-24 14:40:26 +01:00
smp_twd.c cpufreq: remove unused notifier: CPUFREQ_{SUSPENDCHANGE|RESUMECHANGE} 2014-03-19 14:10:24 +01:00
smp.c ARM: add IPI tracepoints 2014-08-07 20:40:41 -04:00
stacktrace.c ARM: 8049/1: ftrace/add save_stack_trace_regs() implementation 2014-05-30 01:12:32 +01:00
suspend.c ARM: suspend: use hash of cpu_logical_map value to index into save array 2013-07-30 09:00:43 -04:00
swp_emulate.c ARM: 8135/1: Fix in-correct barrier usage in SWP{B} emulation 2014-09-12 17:38:58 +01:00
sys_arm.c arm: switch to generic fork/vfork/clone 2012-11-28 22:13:54 -05:00
sys_oabi-compat.c locks: rename file-private locks to "open file description locks" 2014-04-22 08:23:58 -04:00
tcm.c ARM: add permission annotations to MT_MEMORY* mapping types 2013-12-11 09:53:14 +00:00
thumbee.c ARM: 8148/1: flush TLS and thumbee register state during exec 2014-09-16 16:09:32 +01:00
time.c ARM: 8072/1: time: Make use of arm_get_current_stackframe 2014-07-18 12:29:14 +01:00
topology.c sched: Fix compiler warnings 2014-07-02 08:33:48 +02:00
traps.c ARM: 8148/1: flush TLS and thumbee register state during exec 2014-09-16 16:09:32 +01:00
unwind.c ARM: 8073/1: unwind: Use arm_get_current_stackframe 2014-07-18 12:29:16 +01:00
uprobes-arm.c ARM: add uprobes support 2014-03-18 16:39:40 -04:00
uprobes.c ARM: 8043/1: uprobes need icache flush after xol write 2014-05-25 23:48:45 +01:00
uprobes.h ARM: add uprobes support 2014-03-18 16:39:40 -04:00
v7m.c ARM: 7828/1: ARMv7-M: implement restart routine common to all v7-M machines 2013-09-02 13:49:29 +01:00
vmlinux.lds.S ARM: 8088/1: vmlinux.lds.S: drop redundant .comment 2014-07-18 12:29:23 +01:00
xscale-cp0.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00