On 04/05/19 12:49 AM, Simon Goldschmidt wrote:
> This function merely relocates the fdt blob, so don't let it alter
> it by adding reservations that didn't exist before.
> 
> Instead, if the memory used for the fdt blob has been reserved
> before calling this function, ensure the relocated memory is
> marked as reserved instead.
> 
> Reported-by: Keerthy <[email protected]>
> Reported-by: Lokesh Vutla <[email protected]>
> Signed-off-by: Simon Goldschmidt <[email protected]>

Reviewed-by: Lokesh Vutla <[email protected]>

Thanks and regards,
Lokesh

> ---
> 
>  common/fdt_support.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/common/fdt_support.c b/common/fdt_support.c
> index ab08a0114f..4e7cf6ebe9 100644
> --- a/common/fdt_support.c
> +++ b/common/fdt_support.c
> @@ -597,6 +597,7 @@ int fdt_shrink_to_minimum(void *blob, uint extrasize)
>       uint64_t addr, size;
>       int total, ret;
>       uint actualsize;
> +     int fdt_memrsv = 0;
>  
>       if (!blob)
>               return 0;
> @@ -606,6 +607,7 @@ int fdt_shrink_to_minimum(void *blob, uint extrasize)
>               fdt_get_mem_rsv(blob, i, &addr, &size);
>               if (addr == (uintptr_t)blob) {
>                       fdt_del_mem_rsv(blob, i);
> +                     fdt_memrsv = 1;
>                       break;
>               }
>       }
> @@ -627,10 +629,12 @@ int fdt_shrink_to_minimum(void *blob, uint extrasize)
>       /* Change the fdt header to reflect the correct size */
>       fdt_set_totalsize(blob, actualsize);
>  
> -     /* Add the new reservation */
> -     ret = fdt_add_mem_rsv(blob, map_to_sysmem(blob), actualsize);
> -     if (ret < 0)
> -             return ret;
> +     if (fdt_memrsv) {
> +             /* Add the new reservation */
> +             ret = fdt_add_mem_rsv(blob, map_to_sysmem(blob), actualsize);
> +             if (ret < 0)
> +                     return ret;
> +     }
>  
>       return actualsize;
>  }
> 
_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to