linux/arch/powerpc
Jeremy Kerr 8c06f0d910 powerpc/boot: Fix stack corruption in epapr entry point
Currently, a 64-bit little-endian zImage.epapr won't boot in epapr mode,
as we never return from platform_init.

Before entering C, we initialise our stack by setting r1 16 bytes below
the end of the _bss_stack:

  stwu	r0,-16(r1)	/* establish a stack frame */

However, the called function will save the caller's lr in the caller's
frame's lr save area, at -16(r1) to -32(r1).

This means that writes to the fdt variable will corrupt the saved link
register:

 0000000020c06018 l     O .bss   0000000000001000 _bss_stack
 0000000020c07018 l     O .bss   0000000000000008 fdt

We'll need at least 32 bytes in the initial stack frame, to handle the
LR save area. We bump this to 112 bytes, as that'll be the max required
by ABIv1.

Thanks to Alistair Popple for debugging help.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-03-16 18:58:34 +11:00
..
boot powerpc/boot: Fix stack corruption in epapr entry point 2015-03-16 18:58:34 +11:00
configs The clock framework changes for 3.20 contain the usual driver additions, 2015-02-21 12:30:30 -08:00
crypto crypto: add missing crypto module aliases 2015-01-13 22:29:11 +11:00
include powerpc/mpic: remove unused functions 2015-03-16 18:50:18 +11:00
kernel powerpc: Change vrX register defines to vX to match gcc and glibc 2015-03-16 18:32:11 +11:00
kvm Tighten rules for ACCESS_ONCE 2015-02-14 10:54:28 -08:00
lib powerpc: Delete unnecessary checks before kfree() 2015-03-16 18:50:14 +11:00
math-emu powerpc: Correct emulated mtfsf instruction 2014-04-07 10:33:11 +10:00
mm powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
net module: remove mod arg from module_free, rename module_memfree(). 2015-01-20 11:38:33 +10:30
oprofile powerpc updates for 3.19 2014-12-11 17:48:14 -08:00
perf Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next 2015-02-04 12:03:21 +11:00
platforms powerpc/powernv: Move opal-api.h closer to the Skiboot version 2015-03-16 18:50:16 +11:00
sysdev powerpc/mpic: remove unused functions 2015-03-16 18:50:18 +11:00
xmon powerpc updates for 3.20 2015-02-11 18:15:38 -08:00
Kconfig powerpc/mm: fix undefined reference to `.__kernel_map_pages' on FSL PPC64 2015-01-28 14:22:22 +11:00
Kconfig.debug Patch queue for ppc - 2014-08-01 2014-08-05 09:58:11 +02:00
Makefile kbuild: do not add $(call ...) to invoke cc-version or cc-fullversion 2015-01-09 17:25:44 +01:00
relocs_check.pl Fix warning typo "CONFIG_RELCOATABLE" 2013-05-29 15:11:30 +02:00