From: Stefan Roese Date: Sun, 8 Jul 2007 11:44:27 +0000 (+0200) Subject: Fix malloc problem introduced with the relocation fixup for the PPC platform X-Git-Tag: v1.3.0-rc1~19^2~20^2~18^2~12 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=e9514751cfa5cce61ea699fa0d3eb37898a5eeb5;p=oweals%2Fu-boot.git Fix malloc problem introduced with the relocation fixup for the PPC platform The relocation fixup didn't handle the malloc pointer initialization correctly. This patch fixes this problem. Tested successfully on 4xx. The relocation fixup patches for 4xx will follow soon. Signed-off-by: Stefan Roese --- diff --git a/lib_ppc/board.c b/lib_ppc/board.c index 8651cb3c16..80baab8920 100644 --- a/lib_ppc/board.c +++ b/lib_ppc/board.c @@ -139,10 +139,10 @@ static ulong mem_malloc_brk = 0; */ static void mem_malloc_init (void) { - ulong dest_addr = CFG_MONITOR_BASE + gd->reloc_off; - - mem_malloc_end = dest_addr; - mem_malloc_start = dest_addr - TOTAL_MALLOC_LEN; +#if !defined(CONFIG_RELOC_FIXUP_WORKS) + mem_malloc_end = CFG_MONITOR_BASE + gd->reloc_off; +#endif + mem_malloc_start = mem_malloc_end - TOTAL_MALLOC_LEN; mem_malloc_brk = mem_malloc_start; memset ((void *) mem_malloc_start, @@ -623,6 +623,7 @@ void board_init_r (gd_t *id, ulong dest_addr) #if defined(CONFIG_RELOC_FIXUP_WORKS) gd->reloc_off = 0; + mem_malloc_end = dest_addr; #else gd->reloc_off = dest_addr - CFG_MONITOR_BASE; #endif