[U-Boot-Users] Fix malloc problem introduced with the relocation fixup for the PPC platform

Grant Likely grant.likely at secretlab.ca
Sun Jul 8 15:55:04 CEST 2007


On 7/8/07, Stefan Roese <sr at denx.de> wrote:
> 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 <sr at denx.de>
Acked-by: Grant Likely <grant.likely at secretlab.ca>

>
> ---
> commit 3a1e66ba75172959973377d6069f1d12e1a4ecb3
> tree 6fdde574dd5328b805e0e438ebb32cc7e7de8f4d
> parent dcc0264878406d52b879d2e5a63d3d793371434e
> author Stefan Roese <sr at denx.de> Sun, 08 Jul 2007 13:42:52 +0200
> committer Stefan Roese <sr at denx.de> Sun, 08 Jul 2007 13:42:52 +0200
>
>  lib_ppc/board.c |    9 +++++----
>  1 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/lib_ppc/board.c b/lib_ppc/board.c
> index 8bb885d..5e156ab 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
>


-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely at secretlab.ca
(403) 399-0195




More information about the U-Boot mailing list