linux/arch/powerpc/kernel
Tony Breeds 7563dc6458 powerpc: Work around gcc's -fno-omit-frame-pointer bug
This bug is causing random crashes
(http://bugzilla.kernel.org/show_bug.cgi?id=11414).

-fno-omit-frame-pointer is only needed on powerpc when -pg is also
supplied, and there is a gcc bug that causes incorrect code generation
on 32-bit powerpc when -fno-omit-frame-pointer is used---it uses stack
locations below the stack pointer, which is not allowed by the ABI
because those locations can and sometimes do get corrupted by an
interrupt.

This ensures that CONFIG_FRAME_POINTER is only selected by ftrace.
When CONFIG_FTRACE is enabled we also pass -mno-sched-epilog to work
around the gcc codegen bug.

Patch based on work by:
	Andreas Schwab <schwab@suse.de>
	Segher Boessenkool <segher@kernel.crashing.org>

Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-09-03 20:53:34 +10:00
..
vdso32 powerpc: Fixup lwsync at runtime 2008-07-03 16:58:10 +10:00
vdso64 powerpc: Fixup lwsync at runtime 2008-07-03 16:58:10 +10:00
align.c powerpc: Fix uninitialised variable in VSX alignment code 2008-09-03 20:53:14 +10:00
asm-offsets.c powerpc: Introduce VSX thread_struct and CONFIG_VSX 2008-07-01 11:28:46 +10:00
audit.c
btext.c [POWERPC] Remove duplicate #include 2008-05-09 20:22:58 +10:00
clock.c
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S powerpc: Remove use of CONFIG_PPC_MERGE 2008-08-04 13:18:17 +10:00
cpu_setup_pa6t.S
cpu_setup_ppc970.S
cputable.c powerpc: Fix boot problem due to AT_BASE_PLATFORM change 2008-07-26 09:02:43 +10:00
crash.c powerpc: Increase CRASH_HANDLER_MAX 2008-06-30 22:31:00 +10:00
crash_dump.c powerpc: Fix /dev/oldmem interface for kdump 2008-08-20 09:50:21 +10:00
dma_64.c powerpc: move device_to_mask() to dma-mapping.h 2008-07-09 16:30:44 +10:00
entry_32.S powerpc: Add TIF_NOTIFY_RESUME support for tracehook 2008-07-28 16:30:50 +10:00
entry_64.S powerpc: Add TIF_NOTIFY_RESUME support for tracehook 2008-07-28 16:30:50 +10:00
firmware.c
fpu.S powerpc: Add VSX context save/restore, ptrace and signal support 2008-07-01 11:28:50 +10:00
ftrace.c ftrace: store mcount address in rec->ip 2008-06-23 22:10:56 +02:00
head_8xx.S
head_32.S powerpc: Fix TLB invalidation on boot on 32-bit 2008-08-18 14:22:34 +10:00
head_40x.S [POWERPC] 40x/Book-E: Save/restore volatile exception registers 2008-06-02 14:56:35 -05:00
head_44x.S powerpc: rework 4xx PTE access and TLB miss 2008-07-09 13:36:17 -04:00
head_64.S powerpc: Don't spin on sync instruction at boot time 2008-07-15 12:29:28 +10:00
head_booke.h powerpc: rework 4xx PTE access and TLB miss 2008-07-09 13:36:17 -04:00
head_fsl_booke.S powerpc/fsl: Minor TLBSYNC cleanup for FSL Book-E 2008-07-16 17:57:52 -05:00
ibmebus.c powerpc/ibmebus: Restore "name" sysfs attribute on ibmebus devices 2008-08-20 09:50:21 +10:00
idle.c nohz: prevent tick stop outside of the idle loop 2008-07-18 18:10:28 +02:00
idle_6xx.S powerpc/85xx: add DOZE/NAP support for e500 core 2008-06-26 01:48:56 -05:00
idle_e500.S powerpc/e500mc: flush L2 on NAP for e500mc 2008-06-26 01:49:03 -05:00
idle_power4.S
init_task.c [PATCH] take init_files to fs/file.c 2008-05-16 17:22:20 -04:00
io.c ftrace: support for PowerPC 2008-05-23 22:43:11 +02:00
iomap.c
iommu.c powerpc/pseries: iommu enablement for CMO 2008-07-25 15:44:43 +10:00
irq.c powerpc: Remove use of CONFIG_PPC_MERGE 2008-08-04 13:18:17 +10:00
isa-bridge.c [POWERPC] Remove leftover printk in isa-bridge.c 2008-05-09 20:22:59 +10:00
kgdb.c kgdb, powerpc: arch specific powerpc kgdb support 2008-07-23 11:30:15 -05:00
kprobes.c kprobes: improve kretprobe scalability with hashed locking 2008-07-25 10:53:30 -07:00
l2cr_6xx.S
legacy_serial.c powerpc/powermac: Fixup default serial port device for pmac_zilog 2008-07-28 16:30:53 +10:00
lparcfg.c powerpc: Add CMO enabled flag and paging space data to lparcfg 2008-08-18 14:22:35 +10:00
machine_kexec.c kexec jump 2008-07-26 12:00:04 -07:00
machine_kexec_32.c kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE 2008-08-15 08:35:42 -07:00
machine_kexec_64.c Merge commit 'origin/master' 2008-07-16 11:07:59 +10:00
Makefile powerpc: Work around gcc's -fno-omit-frame-pointer bug 2008-09-03 20:53:34 +10:00
misc.S powerpc: Add cputable entry for POWER7 2008-06-30 22:31:11 +10:00
misc_32.S powerpc/kexec: Fix up KEXEC_CONTROL_CODE_SIZE missed during conversion 2008-08-18 14:22:35 +10:00
misc_64.S powerpc: fix giveup_vsx to save registers correctly 2008-07-15 12:29:23 +10:00
module.c powerpc: Remove dead module_find_bug code 2008-08-18 14:22:35 +10:00
module_32.c powerpc: Move common module code into its own file 2008-07-01 11:28:05 +10:00
module_64.c powerpc: Add PPC_NOP_INSTR, a hash define for the preferred nop instruction 2008-07-01 11:28:23 +10:00
msi.c [POWERPC] Fix sparse warnings in arch/powerpc/kernel 2008-05-14 22:31:59 +10:00
nvram_64.c
of_device.c [POWERPC] Move of_device_get_modalias to drivers/of 2008-05-16 23:22:28 +10:00
of_platform.c powerpc: Add missing reference to coherent_dma_mask 2008-07-08 21:06:35 -07:00
paca.c
pci-common.c powerpc/pci: Don't keep ISA memory hole resources in the tree 2008-08-11 10:09:56 +10:00
pci_32.c
pci_64.c [POWERPC] Use dev_set_name in pci_64.c 2008-06-09 11:32:40 +10:00
pci_dn.c
pmc.c
ppc32.h powerpc: Add VSX context save/restore, ptrace and signal support 2008-07-01 11:28:50 +10:00
ppc_ksyms.c Merge commit '85082fd7cbe3173198aac0eb5e85ab1edcc6352c' into test-build 2008-07-15 15:44:51 +10:00
proc_ppc64.c
process.c powerpc: Remove use of CONFIG_PPC_MERGE 2008-08-04 13:18:17 +10:00
prom.c powerpc: Add VSX CPU feature 2008-07-01 11:28:47 +10:00
prom_init.c powerpc: kill useless SMT code in prom_hold_cpus 2008-07-28 16:30:48 +10:00
prom_init_check.sh [POWERPC] Fix -Os kernel builds with newer gcc versions 2008-06-16 15:00:54 +10:00
prom_parse.c powerpc: Fix OF parsing of 64 bits PCI addresses 2008-07-22 10:39:34 +10:00
ptrace.c powerpc: Don't use the wrong thread_struct for ptrace get/set VSX regs 2008-07-30 15:26:54 +10:00
ptrace32.c powerpc: Correctly hookup PTRACE_GET/SETVSRREGS for 32 bit processes 2008-07-30 15:26:54 +10:00
rtas-proc.c [POWERPC] Fix sparse warnings in arch/powerpc/kernel 2008-05-14 22:31:59 +10:00
rtas-rtc.c
rtas.c powerpc: Zero fill the return values of rtas argument buffer 2008-08-11 10:09:56 +10:00
rtas_flash.c SL*B: drop kmem cache argument from constructor 2008-07-26 12:00:07 -07:00
rtas_pci.c [POWERPC] Fix sparse warnings in arch/powerpc/kernel 2008-05-14 22:31:59 +10:00
setup-common.c powerpc: Update cpu_sibling_maps dynamically 2008-07-28 16:30:49 +10:00
setup.h
setup_32.c kgdb, powerpc: arch specific powerpc kgdb support 2008-07-23 11:30:15 -05:00
setup_64.c powerpc: Update cpu_sibling_maps dynamically 2008-07-28 16:30:49 +10:00
signal.c powerpc: Add TIF_NOTIFY_RESUME support for tracehook 2008-07-28 16:30:50 +10:00
signal.h powerpc: Clean up copy_to/from_user for vsx and fpr 2008-07-03 16:58:11 +10:00
signal_32.c powerpc: fix giveup_vsx to save registers correctly 2008-07-15 12:29:23 +10:00
signal_64.c powerpc: fix giveup_vsx to save registers correctly 2008-07-15 12:29:23 +10:00
smp-tbsync.c
smp.c powerpc: Make core id information available to userspace 2008-07-28 16:30:52 +10:00
softemu8xx.c powerpc: Add macros to access floating point registers in thread_struct. 2008-07-01 11:28:43 +10:00
stacktrace.c powerpc: Removed duplicated include in stacktrace.c 2008-07-28 16:30:47 +10:00
suspend.c PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
swsusp.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S
sys_ppc32.c powerpc: Use generic compat_sys_old_readdir 2008-08-18 14:22:35 +10:00
syscalls.c powerpc/mm: Add Strong Access Ordering support 2008-07-09 16:30:45 +10:00
sysfs.c powerpc: Show processor cache information in sysfs 2008-07-28 16:30:52 +10:00
systbl.S
systbl_chk.c
systbl_chk.sh
tau_6xx.c on_each_cpu(): kill unused 'retry' parameter 2008-06-26 11:24:38 +02:00
time.c Merge commit 'origin/master' 2008-07-16 11:07:59 +10:00
traps.c powerpc: BookE hardware watchpoint support 2008-07-25 15:44:39 +10:00
udbg.c
udbg_16550.c
vdso.c powerpc: Remove use of CONFIG_PPC_MERGE 2008-08-04 13:18:17 +10:00
vecemu.c
vector.S
vio.c powerpc: Fix vio_bus_probe oops on probe error 2008-08-20 09:50:22 +10:00
vmlinux.lds.S powerpc: Make sure _etext is after all kernel text 2008-09-03 20:53:26 +10:00