ppc: unused memory region too close to current stack pointer
authorNorbert van Bolhuis <nvbolhuis@aimvalley.nl>
Fri, 19 Mar 2010 14:34:25 +0000 (15:34 +0100)
committerWolfgang Denk <wd@denx.de>
Wed, 5 May 2010 21:55:02 +0000 (23:55 +0200)
This avoids a possible overwrite of the (end of) ramdisk by u-boot.
The unused memory region for ppc boot currently starts 1k below the
do_bootm->bootm_start->arch_lmb_reserve stack ptr. This isn't enough since
do_bootm->do_bootm_linux->boot_relocate_fdt calls printf which may
very well use more than 1k stack space.

Signed-off-by: Norbert van Bolhuis <nvbolhuis@aimvalley.nl>
arch/powerpc/lib/bootm.c

index 0685a9331cba9fa7918b309b8c004709308c4436..6702df51a583026d421a6275c5bea11b134d35b6 100644 (file)
@@ -163,8 +163,8 @@ void arch_lmb_reserve(struct lmb *lmb)
        sp = get_sp();
        debug ("## Current stack ends at 0x%08lx\n", sp);
 
-       /* adjust sp by 1K to be safe */
-       sp -= 1024;
+       /* adjust sp by 4K to be safe */
+       sp -= 4096;
        lmb_reserve(lmb, sp, (CONFIG_SYS_SDRAM_BASE + get_effective_memsize() - sp));
 
        return ;