ARM: increase lmb stack space reservation to 4KB
authorRob Herring <rob.herring@calxeda.com>
Thu, 28 Jun 2012 03:54:11 +0000 (03:54 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Thu, 4 Oct 2012 08:25:40 +0000 (10:25 +0200)
The bootm initrd image copy to ram can collide with the stack in cases
where the print buffer size is large (i.e. 1K). The result is intermittent
initrd decompression errors depending on the initrd size MOD 4KB since
the initrd start address is 4KB aligned.

Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
arch/arm/lib/bootm.c

index 599547d2c8a3b2cf5b825203e93fd408d14dba2a..999f201ef6ebd37d300b5eb84250fefdf172bce5 100644 (file)
@@ -69,8 +69,8 @@ void arch_lmb_reserve(struct lmb *lmb)
        sp = get_sp();
        debug("## Current stack ends at 0x%08lx ", sp);
 
-       /* adjust sp by 1K to be safe */
-       sp -= 1024;
+       /* adjust sp by 4K to be safe */
+       sp -= 4096;
        lmb_reserve(lmb, sp,
                    gd->bd->bi_dram[0].start + gd->bd->bi_dram[0].size - sp);
 }